directfb: Remove
authorBenjamin Otte <otte@redhat.com>
Mon, 23 Aug 2010 10:44:58 +0000 (12:44 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 23 Aug 2010 10:44:58 +0000 (12:44 +0200)
As announced by email and on IRC, this backend is removed from GTK 3.
It has been broken for over a year with no one fixing it.

45 files changed:
configure.ac
docs/reference/gdk/Makefile.am
docs/reference/gdk/gdk3-sections.txt
docs/reference/gtk/Makefile.am
docs/reference/gtk/building.sgml
docs/reference/gtk/directfb.sgml [deleted file]
docs/reference/gtk/gtk-docs.sgml
gdk/Makefile.am
gdk/directfb/AUTHORS [deleted file]
gdk/directfb/Makefile.am [deleted file]
gdk/directfb/README [deleted file]
gdk/directfb/TODO [deleted file]
gdk/directfb/gdkapplaunchcontext-directfb.c [deleted file]
gdk/directfb/gdkcolor-directfb.c [deleted file]
gdk/directfb/gdkcursor-directfb.c [deleted file]
gdk/directfb/gdkdirectfb.h [deleted file]
gdk/directfb/gdkdisplay-directfb.c [deleted file]
gdk/directfb/gdkdisplay-directfb.h [deleted file]
gdk/directfb/gdkdnd-directfb.c [deleted file]
gdk/directfb/gdkdrawable-directfb.c [deleted file]
gdk/directfb/gdkevents-directfb.c [deleted file]
gdk/directfb/gdkgeometry-directfb.c [deleted file]
gdk/directfb/gdkglobals-directfb.c [deleted file]
gdk/directfb/gdkim-directfb.c [deleted file]
gdk/directfb/gdkinput-directfb.c [deleted file]
gdk/directfb/gdkinput-directfb.h [deleted file]
gdk/directfb/gdkkeys-directfb.c [deleted file]
gdk/directfb/gdkmain-directfb.c [deleted file]
gdk/directfb/gdkpixmap-directfb.c [deleted file]
gdk/directfb/gdkprivate-directfb.h [deleted file]
gdk/directfb/gdkproperty-directfb.c [deleted file]
gdk/directfb/gdkscreen-directfb.c [deleted file]
gdk/directfb/gdkselection-directfb.c [deleted file]
gdk/directfb/gdkspawn-directfb.c [deleted file]
gdk/directfb/gdktestutils-directfb.c [deleted file]
gdk/directfb/gdkvisual-directfb.c [deleted file]
gdk/directfb/gdkwindow-directfb.c [deleted file]
gdk/directfb/gdkwindowid.c [deleted file]
gdk/directfb/x-cursors.xbm [deleted file]
gdk/gdk.symbols
gtk/Makefile.am
gtk/gtkiconfactory.c
gtk/gtkwindow-decorate.c
po-properties/POTFILES.in
po/POTFILES.in

index 2de98183eef46ce9d076fddd4f47cfc307ea5703..089bb3f15d31d5cad8f604e20b4723b2fa8889d8 100644 (file)
@@ -257,13 +257,13 @@ else
   gdktarget=x11
 fi
 
-AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
+AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/win32/quartz]] select non-default GDK target],
        gdktarget=$with_gdktarget)
 
 AC_SUBST(gdktarget)
 case $gdktarget in
-  x11|win32|quartz|directfb) ;;
-  *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);;
+  x11|win32|quartz) ;;
+  *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz or win32.]);;
 esac
 
 gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
@@ -1248,17 +1248,6 @@ else
   AM_CONDITIONAL(USE_QUARTZ, false)
 fi
 
-if test "x$gdktarget" = "xdirectfb"; then
-  DIRECTFB_REQUIRED_VERSION=1.0.0
-  AC_MSG_CHECKING(for DirectFB)
-
-  PKG_CHECK_MODULES(DIRECTFB, [directfb >= $DIRECTFB_REQUIRED_VERSION])
-  AM_CONDITIONAL(USE_DIRECTFB, true)
-else
-  AM_CONDITIONAL(USE_DIRECTFB, false)
-fi
-
-
 # Check for Pango flags
 
 if test "x$gdktarget" = "xwin32"; then
@@ -1652,9 +1641,6 @@ elif test "x$gdktarget" = "xwin32" ; then
 elif test "x$gdktarget" = "xquartz" ; then
   gdk_windowing='
 #define GDK_WINDOWING_QUARTZ'
-elif test "x$gdktarget" = "xdirectfb" ; then
-  gdk_windowing='
-#define GDK_WINDOWING_DIRECTFB'
 fi
 
 if test x$gdk_wchar_h = xyes; then
@@ -1730,7 +1716,6 @@ gdk/win32/Makefile
 gdk/win32/rc/Makefile
 gdk/win32/rc/gdk.rc
 gdk/quartz/Makefile
-gdk/directfb/Makefile
 gdk/tests/Makefile
 gtk/Makefile
 gtk/makefile.msc
index d726ac227b765823b97ebca498da9b1c15924bf7..3015baa9fac2c791c76595a8e6e0f5063da3d5b5 100644 (file)
@@ -29,7 +29,6 @@ IGNORE_HFILES=                        \
        gdkpoly-generic.h       \
        keyname-table.h         \
        win32                   \
-       directfb                \
        x11                     \
        quartz
 
index 9f6a878cea583902e78b27843df641f0bc1039c3..fe5d5de5240b47a10013c8af0a0fd39bffe73b13 100644 (file)
@@ -52,7 +52,6 @@ gdk_error_trap_pop
 GDK_WINDOWING_X11
 GDK_WINDOWING_WIN32
 GDK_WINDOWING_QUARTZ
-GDK_WINDOWING_DIRECTFB
 
 <SUBSECTION Standard>
 GDK_TYPE_GRAB_STATUS
index 103e508c1f5999dd9efcfaee061bdb0f14428ed2..6766be88a740e5785867436ff51b73e7fa00b441 100644 (file)
@@ -117,7 +117,6 @@ content_files =                                     \
        running.sgml                            \
        building.sgml                           \
        compiling.sgml                          \
-       directfb.sgml                           \
        drawing-model.xml                       \
        glossary.xml                            \
        migrating-2to3.xml                      \
index e6a316ced39516ea6cfa9d3c0bdc0b7dd3347400..33064e2494fc6b3da3b34571d9e692c9587bd182 100644 (file)
@@ -361,7 +361,7 @@ How to compile GTK+ itself
             <arg>--with-xinput=[no|yes]</arg>
           </group>
           <group>
-            <arg>--with-gdktarget=[x11|win32|quartz|directfb]</arg>
+            <arg>--with-gdktarget=[x11|win32|quartz]</arg>
           </group>
           <group>
             <arg>--disable-introspection</arg>
@@ -551,8 +551,7 @@ How to compile GTK+ itself
           Toggles between the supported backends for GDK.
           The default is x11, unless the platform is Windows, in which
           case the default is win32. Other supported backends are
-          the quartz backend for OS X, and the DirectFB backend
-          for the Linux framebuffer.
+          the quartz backend for OS X.
         </para>
       </formalpara>
       <formalpara>
diff --git a/docs/reference/gtk/directfb.sgml b/docs/reference/gtk/directfb.sgml
deleted file mode 100644 (file)
index 4137b30..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
-               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
-]>
-<refentry id="gtk-directfb">
-<refmeta>
-<refentrytitle>Using GTK+ on DirectFB</refentrytitle>
-<manvolnum>3</manvolnum>
-<refmiscinfo>GTK Library</refmiscinfo>
-</refmeta>
-
-<refnamediv>
-<refname>Using GTK+ on DirectFB</refname>
-<refpurpose>
-DirectFB-specific aspects of using GTK+
-</refpurpose>
-</refnamediv>
-
-<refsect1>
-<title>Using GTK+ on DirectFB</title>
-
-<para>
-The DirectFB port of GTK+ is an implementation of GDK (and therefore GTK+) 
-on top of the <ulink url="http://www.directfb.org">DirectFB</ulink> 
-libraries.
-</para>
-
-<para>
-Like the obsolete linux-fb port of GTK+, it runs on the Linux framebuffer,
-but the DirectFB libraries provide additional features like hardware graphics 
-acceleration, input device handling and abstraction and an integrated windowing 
-system.
-</para>
-
-<refsect2><title>Build requirements</title>
-
-<para>
-Beyond the usual GTK+ build requirements, the DirectFB backend (obviously) 
-needs the DirectFB libraries (at least 0.9.21) and cairo compiled with 
-DirectFB support.
-</para>
-</refsect2>
-</refsect1>
-</refentry>
index 08bc46b37623ccd3a53b7aa580f3b4ca9aac5750..4e97d0b6053a52a9239c741e8622da0ed8786bb9 100644 (file)
@@ -119,7 +119,6 @@ that is, GUI components such as #GtkButton or #GtkTextView.
     <xi:include href="x11.sgml" />
     <xi:include href="windows.sgml" />
     <xi:include href="osx.sgml" />
-    <xi:include href="directfb.sgml" />
     <xi:include href="resources.sgml" />
     <xi:include href="xml/question_index.sgml" />
     <xi:include href="drawing-model.xml" />
index 020f99f312ac1197b68ebc92711532e524e40f6f..fdd17cded96103ca041ec36ab416dca385de5829 100644 (file)
@@ -9,7 +9,7 @@ INTROSPECTION_COMPILER_ARGS = \
    --includedir=.
 
 SUBDIRS = $(gdktarget) . tests
-DIST_SUBDIRS = win32 x11 quartz directfb tests
+DIST_SUBDIRS = win32 x11 quartz tests
 
 CLEANFILES =
 
@@ -155,10 +155,6 @@ common_sources =           \
        gdkmarshalers.c         \
        gdkmarshalers.h
 
-libgdk_directfb_3_0_la_SOURCES = $(common_sources)
-libgdk_directfb_3_0_la_LIBADD = directfb/libgdk-directfb.la $(GDK_DEP_LIBS)
-libgdk_directfb_3_0_la_LDFLAGS = $(LDADD)
-
 libgdk_x11_3_0_la_SOURCES = $(common_sources)
 libgdk_x11_3_0_la_LIBADD = x11/libgdk-x11.la $(GDK_DEP_LIBS)
 libgdk_x11_3_0_la_LDFLAGS = $(LDADD)
@@ -286,7 +282,7 @@ endif
 
 lib_LTLIBRARIES = $(gdktargetlib)
 
-EXTRA_LTLIBRARIES = libgdk-x11-3.0.la libgdk-win32-3.0.la libgdk-quartz-3.0.la libgdk-directfb-3.0.la
+EXTRA_LTLIBRARIES = libgdk-x11-3.0.la libgdk-win32-3.0.la libgdk-quartz-3.0.la
 
 MAINTAINERCLEANFILES = $(gdk_built_sources) stamp-gdkenumtypes.h
 EXTRA_DIST += $(gdk_built_sources)
diff --git a/gdk/directfb/AUTHORS b/gdk/directfb/AUTHORS
deleted file mode 100644 (file)
index 52ced03..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-The GDK DirectFB backend was written by
-
- Denis Oliver Kropp <dok@directfb.org>
- Sven Neumann <neo@directfb.org>
-
-Large parts of the code are based on other GDK backends
-especially the linuxfb backend which was written mainly
-by Alex Larsson <alexl@redhat.com>.
-
-
-The upgrade to gtk 2.8.x was done by 
-
- Michael Emmel <mike.emmel@gmail.com>
-
-
-Extensive help and support and code was recieved from the Debian
-community especially the Debian installer team who bravely chose to
-use the gdk directfb port for the graphical debian installer. In
-particular
-
- Attilio Fiandrotti <fiandro@tiscalinet.it>
- Davide Viti <zinosat@tiscali.it>
-
-for there tireless work bringing the backend from a small project to
-stability.
-
-And finally thanks to the Extremadura goverment for bringing the
-directfb developers and debian installer team together for a workshop.
diff --git a/gdk/directfb/Makefile.am b/gdk/directfb/Makefile.am
deleted file mode 100644 (file)
index bfc4771..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-## Makefile.am for gtk+/gdk/gdk-directfb
-include $(top_srcdir)/Makefile.decl
-
-libgdkincludedir = $(includedir)/gtk-3.0/gdk
-
-INCLUDES =             \
-       -DG_LOG_DOMAIN=\"Gdk-DirectFB\" \
-       -DGDK_COMPILATION \
-       -I$(top_srcdir)                 \
-       -I$(top_srcdir)/gdk             \
-       -I$(top_builddir)/gdk           \
-       -DG_DISABLE_DEPRECATED          \
-       @GTK_DEBUG_FLAGS@               \
-       @GDK_DEP_CFLAGS@
-
-LDADDS =               \
-       @GDK_DEP_LIBS@
-
-noinst_LTLIBRARIES = libgdk-directfb.la
-
-libgdk_directfb_la_SOURCES =   \
-       gdkapplaunchcontext-directfb.c \
-       gdkcolor-directfb.c     \
-       gdkcursor-directfb.c    \
-       gdkdnd-directfb.c       \
-       gdkdisplay-directfb.c   \
-       gdkdisplay-directfb.h   \
-       gdkdrawable-directfb.c  \
-       gdkevents-directfb.c    \
-       gdkgeometry-directfb.c  \
-       gdkglobals-directfb.c   \
-       gdkim-directfb.c        \
-       gdkinput-directfb.c     \
-       gdkinput-directfb.h     \
-       gdkkeys-directfb.c      \
-       gdkmain-directfb.c      \
-       gdkpixmap-directfb.c    \
-       gdkprivate-directfb.h   \
-       gdkproperty-directfb.c  \
-       gdkscreen-directfb.c    \
-       gdkselection-directfb.c \
-       gdkspawn-directfb.c     \
-       gdktestutils-directfb.c \
-       gdkvisual-directfb.c    \
-       gdkdirectfb.h           \
-       gdkwindow-directfb.c    \
-       gdkwindowid.c           \
-       x-cursors.xbm
-
-libgdkinclude_HEADERS =                \
-       gdkdirectfb.h           \
-       gdkprivate-directfb.h
-
-
-EXTRA_DIST += AUTHORS README TODO 
-
--include $(top_srcdir)/git.mk
diff --git a/gdk/directfb/README b/gdk/directfb/README
deleted file mode 100644 (file)
index 73b3334..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-README for GDK-DirectFB
-------------------------
-
-This is the GDK backend that allows GTK to work on top of DirectFB.
-
-Important:
-The current code does not pass through directfb passed on the gtk
-apps command line on to directfb you need to set the environment variable
-DFBARGS.
-Example:
-export DFBARGS=system=sdl
-
-DirectFB is a hardware abstraction layer on top of the Linux
-frame buffer that provides drawing functions, a window stack and
-support for input devices. The code you find here is a backend for
-GDK, the drawing kit used by GTK+.
-
-
-As DirectFB provides drawing functions, a windowing stack and manages
-input devices, this is a lightweight GDK port. Some parts of GDK
-require higher level drawing functions that are supported by 
-cairo on DirectFB. 
-GDK also uses some feature like bitmaps that do not map well to 
-modern graphics hardware and are for that reason not yet supported in 
-this snapshot. See the file TODO for a list of missing features.
-
-
-If you want GTK+ to draw window decorations for you, edit the file
-gtk/gtkwindow-decorate.c and uncomment the line that says
-#define DECORATE_WINDOWS.
-
-
-GTK+ application compiled with this version of GTK+ understand some
-additional command-line options special to the DirectFB GDK backend:
-
-  --transparent-unfocused  Makes unfocused windows translucent.
-
-  --argb-font              Use ARGB surfaces for fonts, needed for some
-                           broken hardware.
-
-  --glyph-surface-cache    Lets you tune the size of the glyph cache, 
-                           the default is to cache glyphs from 8 faces.
-
-  --enable-color-keying    This option turns on a hack that does the
-                           following:
-
-    (1) It overrides the color used to draw the window background to
-        gdk_directfb_bg_color as defined in gdkprivate-directfb.h.
-        Note that the alpha value only takes effect if the window has
-        an alpha channel.
-    (2) It also draws all rectangles that are drawn in
-        gdk_directfb_bg_color_key in this color (gdk_directfb_bg_color).
-
-    This feature can be used to create windows with translucent background.
-
-Additionally all DirectFB command-line options as described in the
-directfbrc man-page are supported.
-
-
-This version of GTK+ also introduces two new functions that are special
-to the DirectFB version. You need to include gdk/gdkdirectfb.h to be
-able to use them.
-
-  gdk_directfb_window_set_opacity (GdkWindow *window, guchar opacity));
-
-      This function sets the overall opacity for toplevel GDK windows.
-
-  gdk_directfb_visual_by_format (DFBSurfacePixelFormat pixel_format);
-
-      This function returns a GdkVisual for a DirectFB pixelformat and
-      thus gives you control over the window surface. If for example
-      you want to create a window with alpha channel you can use some
-      code like the following:
-
-        visual = gdk_directfb_visual_by_format (DSPF_ARGB);
-        cmap = gdk_colormap_new (visual, FALSE);
-        gtk_widget_push_colormap (cmap);
-        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-        gtk_widget_pop_colormap ();
-        g_object_unref (cmap);
-
-Don't use these functions if you want to be able to compile your
-application against GTK+-X11 or other GTK+ versions.
-
-
-If you are developing a GTK+ application for GTK+-DirectFB make sure
-you use the gtk+-directfb-2.0.pc file when calling pkg-config to get
-the  correct compiler and linker flags for GTK+-DirectFB:
-
-  pkg-config --cflags gtk+-directfb-2.0
-  pkg-config --libs gtk+-directfb-2.0
-
-
-See the file TODO for a list of unimplemented features.
-
-
-Detailed and up-to-date instructions on how to build a complete
-set of GTK-DFB libraries is avalable in the WIKI of the DirectFB project
-at the address
-http://www.directfb.org/wiki/index.php/Projects:GTK_on_DirectFB
-
-
-This library is free software; you can redistribute it and/or modify it 
-under the terms of the GNU Lesser General Public License as published 
-by the Free Software Foundation; either version 2 of the License, or 
-(at your option) any later version.
diff --git a/gdk/directfb/TODO b/gdk/directfb/TODO
deleted file mode 100644 (file)
index 2833669..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-A list of missing things and known bugs in the DirectFB GDK backend:
-
-- Implement more GDK drawing functions. The most important ones
-  (including XOR) do work now. Other drawing functions are rarely
-  used and would need support from DirectFB.
-- Implemenent extended input devices. Shouldn't be too hard.
-- Look into DND and selections. DND seems to work inside one
-  application at least.
-- Consider using the recently added glyph cache in PangoFT2 to
-  implement our glyph surface cache. Probably limit the number 
-  of cached glyphs or the size of the surface cache instead of
-  keeping all glyphs from a number of fonts in the cache.
-
-Some things that will probably never happen:
-
-- Line styles, joining and related stuff. We could use code from the
-  LinuxFB backend but it seems to be bloat for most applications.
-  Implementing dashed lines would probably make sense and shouldn't
-  be too hard.
-- Bitmaps (they are partly supported) and masks. This stuff should
-  be entirely deprecated. Use real alpha channels instead!
-
-
-This is a simple list of unimplemented function stubs and there file
-to see the implementation check the x11 dir.
-Its not started yet.
-
-gdkcolor-directfb.c
-gdkcursor-directfb.c
-gdkdisplay-directfb.c
-gdkdnd-directfb.c
-gdkdrawable-directfb.c
-gdkevents-directfb.c
-gdkgc-directfb.c
-gdkgeometry-directfb.c
-gdkglobals-directfb.c
-gdkim-directfb.c
-gdkinput-directfb.c
-gdkkeys-directfb.c
-       gdk_keymap_lookup_key 
-       gdk_keyval_convert_case
-gdkmain-directfb.c
-gdkpixmap-directfb.c
-gdkproperty-directfb.c
-gdkscreen-directfb.c
-gdkselection-directfb.c
-gdkspawn-directfb.c
-gdkvisual-directfb.c
-gdkwindow-directfb.c
-gdkwindowid.c
-glyphsurfacecache.c
-
-
-NOTES:
-event filter callbacks missing see the x11 impl
-
diff --git a/gdk/directfb/gdkapplaunchcontext-directfb.c b/gdk/directfb/gdkapplaunchcontext-directfb.c
deleted file mode 100644 (file)
index 05a5ae3..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* gdkapplaunchcontext-directfb.c - Gtk+ implementation for GAppLaunchContext
-
-   Copyright (C) 2007 Red Hat, Inc.
-
-   The Gnome Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The Gnome Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the Gnome Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.
-
-   Author: Matthias Clasen <mclasen@redhat.com>
-*/
-
-#include "config.h"
-
-#include "gdkapplaunchcontext.h"
-
-
-char *
-_gdk_windowing_get_startup_notify_id (GAppLaunchContext *context,
-                                      GAppInfo          *info,
-                                      GList             *files)
-{
-       return NULL;
-}
-
-void
-_gdk_windowing_launch_failed (GAppLaunchContext *context,
-                              const char        *startup_notify_id)
-{
-}
-
-
diff --git a/gdk/directfb/gdkcolor-directfb.c b/gdk/directfb/gdkcolor-directfb.c
deleted file mode 100644 (file)
index 77322f0..0000000
+++ /dev/null
@@ -1,463 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002       convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "gdkcolor.h"
-#include "gdkinternals.h"
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-
-typedef struct {
-  GdkColorInfo     *info;
-  IDirectFBPalette *palette;
-} GdkColormapPrivateDirectFB;
-
-
-static void  gdk_colormap_finalize (GObject *object);
-
-static gint  gdk_colormap_alloc_pseudocolors (GdkColormap *colormap,
-                                              GdkColor    *colors,
-                                              gint         ncolors,
-                                              gboolean     writeable,
-                                              gboolean     best_match,
-                                              gboolean    *success);
-static void  gdk_directfb_allocate_color_key (GdkColormap *colormap);
-
-
-G_DEFINE_TYPE (GdkColormap, gdk_colormap, G_TYPE_OBJECT)
-
-static void
-gdk_colormap_init (GdkColormap *colormap)
-{
-  colormap->size           = 0;
-  colormap->colors         = NULL;
-  colormap->windowing_data = NULL;
-}
-
-static void
-gdk_colormap_class_init (GdkColormapClass *klass)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
-  object_class->finalize = gdk_colormap_finalize;
-}
-
-static void
-gdk_colormap_finalize (GObject *object)
-{
-  GdkColormap                *colormap = GDK_COLORMAP (object);
-  GdkColormapPrivateDirectFB *private  = colormap->windowing_data;
-
-  g_free (colormap->colors);
-
-  if (private)
-    {
-      g_free (private->info);
-
-      if (private->palette)
-        private->palette->Release (private->palette);
-
-      g_free (private);
-      colormap->windowing_data = NULL;
-    }
-
-  G_OBJECT_CLASS (gdk_colormap_parent_class)->finalize (object);
-}
-
-GdkColormap*
-gdk_colormap_new (GdkVisual *visual,
-                  gboolean   private_cmap)
-{
-  GdkColormap *colormap;
-  gint         i;
-
-  g_return_val_if_fail (visual != NULL, NULL);
-
-  colormap = g_object_new (gdk_colormap_get_type (), NULL);
-  colormap->visual = visual;
-  colormap->size   = visual->colormap_size;
-
-  switch (visual->type)
-    {
-    case GDK_VISUAL_PSEUDO_COLOR:
-      {
-        IDirectFB                  *dfb = _gdk_display->directfb;
-        IDirectFBPalette           *palette;
-        GdkColormapPrivateDirectFB *private;
-        DFBPaletteDescription       dsc;
-
-        dsc.flags = DPDESC_SIZE;
-        dsc.size  = colormap->size;
-        if (!dfb->CreatePalette (dfb, &dsc, &palette))
-          return NULL;
-
-        colormap->colors = g_new0 (GdkColor, colormap->size);
-
-        private = g_new0 (GdkColormapPrivateDirectFB, 1);
-        private->info = g_new0 (GdkColorInfo, colormap->size);
-
-       if (visual == gdk_visual_get_system())
-         {
-            /* save the first (transparent) palette entry */
-            private->info[0].ref_count++;
-          }
-
-        private->palette = palette;
-
-        colormap->windowing_data = private;
-
-        gdk_directfb_allocate_color_key (colormap);
-      }
-      break;
-
-    case GDK_VISUAL_STATIC_COLOR:
-      colormap->colors = g_new0 (GdkColor, colormap->size);
-      for (i = 0; i < colormap->size; i++)
-        {
-          GdkColor *color = colormap->colors + i;
-
-          color->pixel = i;
-          color->red   = (i & 0xE0) <<  8 | (i & 0xE0);
-          color->green = (i & 0x1C) << 11 | (i & 0x1C) << 3;
-          color->blue  = (i & 0x03) << 14 | (i & 0x03) << 6;
-        }
-      break;
-
-    default:
-      break;
-    }
-
-  return colormap;
-}
-
-GdkScreen*
-gdk_colormap_get_screen (GdkColormap *cmap)
-{
-  return _gdk_screen;
-}
-
-GdkColormap*
-gdk_screen_get_system_colormap (GdkScreen *screen)
-{
-  static GdkColormap *colormap = NULL;
-
-  if (!colormap)
-    {
-      GdkVisual *visual = gdk_visual_get_system();
-
-      /* special case PSEUDO_COLOR to use the system palette */
-      if (visual->type == GDK_VISUAL_PSEUDO_COLOR)
-        {
-          GdkColormapPrivateDirectFB *private;
-          IDirectFBSurface           *surface;
-
-          colormap = g_object_new (gdk_colormap_get_type (), NULL);
-
-          colormap->visual = visual;
-          colormap->size   = visual->colormap_size;
-          colormap->colors = g_new0 (GdkColor, colormap->size);
-
-          private = g_new0 (GdkColormapPrivateDirectFB, 1);
-          private->info = g_new0 (GdkColorInfo, colormap->size);
-       
-          surface=GDK_WINDOW_IMPL_DIRECTFB (
-                               GDK_WINDOW_OBJECT (_gdk_parent_root)->impl)->drawable.surface;
-          surface->GetPalette (surface, &private->palette);
-
-          colormap->windowing_data = private;
-
-          /* save the first (transparent) palette entry */
-          private->info[0].ref_count++;
-
-          gdk_directfb_allocate_color_key (colormap);
-        }
-      else
-        {
-          colormap = gdk_colormap_new (visual, FALSE);
-        }
-    }
-
-  return colormap;
-}
-
-void
-gdk_colormap_free_colors (GdkColormap    *colormap,
-                          const GdkColor *colors,
-                          gint            ncolors)
-{
-  GdkColormapPrivateDirectFB *private;
-  gint                        i;
-
-  g_return_if_fail (GDK_IS_COLORMAP (colormap));
-  g_return_if_fail (colors != NULL);
-
-  private = colormap->windowing_data;
-  if (!private)
-    return;
-
-  for (i = 0; i < ncolors; i++)
-    {
-      gint  index = colors[i].pixel;
-
-      if (index < 0 || index >= colormap->size)
-        continue;
-
-      if (private->info[index].ref_count)
-        private->info[index].ref_count--;
-    }
-}
-
-gint
-gdk_colormap_alloc_colors (GdkColormap *colormap,
-                           GdkColor    *colors,
-                           gint         ncolors,
-                           gboolean     writeable,
-                           gboolean     best_match,
-                           gboolean    *success)
-{
-  GdkVisual *visual;
-  gint       i;
-
-  g_return_val_if_fail (GDK_IS_COLORMAP (colormap), 0);
-  g_return_val_if_fail (colors != NULL, 0);
-  g_return_val_if_fail (success != NULL, 0);
-
-  switch (colormap->visual->type)
-    {
-    case GDK_VISUAL_TRUE_COLOR:
-      visual = colormap->visual;
-
-      for (i = 0; i < ncolors; i++)
-        {
-          colors[i].pixel =
-            (((colors[i].red
-               >> (16 - visual->red_prec))   << visual->red_shift)   +
-             ((colors[i].green
-               >> (16 - visual->green_prec)) << visual->green_shift) +
-             ((colors[i].blue
-               >> (16 - visual->blue_prec))  << visual->blue_shift));
-
-          success[i] = TRUE;
-        }
-      break;
-
-    case GDK_VISUAL_PSEUDO_COLOR:
-      return gdk_colormap_alloc_pseudocolors (colormap,
-                                              colors, ncolors,
-                                              writeable, best_match,
-                                              success);
-      break;
-
-    case GDK_VISUAL_STATIC_COLOR:
-      for (i = 0; i < ncolors; i++)
-        {
-          colors[i].pixel = (((colors[i].red   & 0xE000) >> 8)  |
-                             ((colors[i].green & 0xE000) >> 11) |
-                             ((colors[i].blue  & 0xC000) >> 14));
-          success[i] = TRUE;
-        }
-      break;
-
-    default:
-      for (i = 0; i < ncolors; i++)
-        success[i] = FALSE;
-      break;
-    }
-
-  return 0;
-}
-
-IDirectFBPalette *
-gdk_directfb_colormap_get_palette (GdkColormap *colormap)
-{
-  GdkColormapPrivateDirectFB *private;
-
-  g_return_val_if_fail (GDK_IS_COLORMAP (colormap), NULL);
-
-  private = colormap->windowing_data;
-
-  if (private && private->palette)
-    return private->palette;
-  else
-    return NULL;
-}
-
-static gint
-gdk_colormap_alloc_pseudocolors (GdkColormap *colormap,
-                                 GdkColor    *colors,
-                                 gint         ncolors,
-                                 gboolean     writeable,
-                                 gboolean     best_match,
-                                 gboolean    *success)
-{
-  GdkColormapPrivateDirectFB *private = colormap->windowing_data;
-  IDirectFBPalette           *palette;
-  gint                        i, j;
-  gint                        remaining = ncolors;
-
-  palette = private->palette;
-
-  for (i = 0; i < ncolors; i++)
-    {
-      guint     index;
-      DFBColor  lookup = { 0xFF,
-                           colors[i].red   >> 8,
-                           colors[i].green >> 8,
-                           colors[i].blue  >> 8 };
-
-      success[i] = FALSE;
-
-      if (writeable)
-        {
-          /* look for an empty slot and allocate a new color */
-          for (j = 0; j < colormap->size; j++)
-            if (private->info[j].ref_count == 0)
-              {
-                index = j;
-
-                palette->SetEntries (palette, &lookup, 1, index);
-
-                private->info[index].flags = GDK_COLOR_WRITEABLE;
-
-                colors[i].pixel = index;
-                colormap->colors[index] = colors[i];
-
-                goto allocated;
-              }
-        }
-      else
-        {
-          palette->FindBestMatch (palette,
-                                  lookup.r, lookup.g, lookup.b, lookup.a,
-                                  &index);
-
-          if (index < 0 || index > colormap->size)
-            continue;
-
-          /* check if we have an exact (non-writeable) match */
-          if (private->info[index].ref_count &&
-              !(private->info[index].flags & GDK_COLOR_WRITEABLE))
-            {
-              DFBColor  entry;
-
-              palette->GetEntries (palette, &entry, 1, index);
-
-              if (entry.a == 0xFF &&
-                  entry.r == lookup.r && entry.g == lookup.g && entry.b == lookup.b)
-                {
-                  colors[i].pixel = index;
-
-                  goto allocated;
-                }
-            }
-
-          /* look for an empty slot and allocate a new color */
-          for (j = 0; j < colormap->size; j++)
-            if (private->info[j].ref_count == 0)
-              {
-                index = j;
-
-                palette->SetEntries (palette, &lookup, 1, index);
-               private->info[index].flags = 0;
-
-                colors[i].pixel = index;
-                colormap->colors[index] = colors[i];
-
-                goto allocated;
-              }
-
-          /* if that failed, use the best match */
-          if (best_match &&
-              !(private->info[index].flags & GDK_COLOR_WRITEABLE))
-            {
-#if 0
-               g_print ("best match for (%d %d %d)  ",
-                       colormap->colors[index].red,
-                       colormap->colors[index].green,
-                       colormap->colors[index].blue);
-#endif
-
-              colors[i].pixel = index;
-
-              goto allocated;
-            }
-        }
-
-      /* if we got here, all attempts failed */
-      continue;
-
-    allocated:
-      private->info[index].ref_count++;
-
-#if 0
-      g_print ("cmap %p: allocated (%d %d %d) %d [%d]\n", colormap,
-                colors[i].red, colors[i].green, colors[i].blue, colors[i].pixel,
-               private->info[index].ref_count);
-#endif
-
-      success[i] = TRUE;
-      remaining--;
-    }
-
-  return remaining;
-}
-
-/* dirty hack for color_keying */
-static void
-gdk_directfb_allocate_color_key (GdkColormap *colormap)
-{
-  GdkColormapPrivateDirectFB *private = colormap->windowing_data;
-  IDirectFBPalette           *palette = private->palette;
-
-  if (!gdk_directfb_enable_color_keying)
-    return;
-
-  palette->SetEntries (palette, &gdk_directfb_bg_color, 1, 255);
-
-  colormap->colors[255].pixel = 255;
-  colormap->colors[255].red   = ((gdk_directfb_bg_color_key.r << 8)
-                                 | gdk_directfb_bg_color_key.r);
-  colormap->colors[255].green = ((gdk_directfb_bg_color_key.g << 8)
-                                 | gdk_directfb_bg_color_key.g);
-  colormap->colors[255].blue  = ((gdk_directfb_bg_color_key.b << 8)
-                                 | gdk_directfb_bg_color_key.b);
-
-  private->info[255].ref_count++;
-}
diff --git a/gdk/directfb/gdkcursor-directfb.c b/gdk/directfb/gdkcursor-directfb.c
deleted file mode 100644 (file)
index 7abd0cd..0000000
+++ /dev/null
@@ -1,546 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002       convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-#include "config.h"
-#include "gdk.h"
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-#include "gdkcursor.h"
-
-#include "x-cursors.xbm"
-
-#include <directfb_version.h>
-
-
-static struct {
-  const guchar *bits;
-  int width, height, hotx, hoty;
-  GdkCursor *cursor;
-} stock_cursors[] = {
-  {X_cursor_bits, X_cursor_width, X_cursor_height, X_cursor_x_hot, X_cursor_y_hot},
-  {X_cursor_mask_bits, X_cursor_mask_width, X_cursor_mask_height, X_cursor_mask_x_hot, X_cursor_mask_y_hot},
-  {arrow_bits, arrow_width, arrow_height, arrow_x_hot, arrow_y_hot},
-  {arrow_mask_bits, arrow_mask_width, arrow_mask_height, arrow_mask_x_hot, arrow_mask_y_hot},
-  {based_arrow_down_bits, based_arrow_down_width, based_arrow_down_height, based_arrow_down_x_hot, based_arrow_down_y_hot},
-  {based_arrow_down_mask_bits, based_arrow_down_mask_width, based_arrow_down_mask_height, based_arrow_down_mask_x_hot, based_arrow_down_mask_y_hot},
-  {based_arrow_up_bits, based_arrow_up_width, based_arrow_up_height, based_arrow_up_x_hot, based_arrow_up_y_hot},
-  {based_arrow_up_mask_bits, based_arrow_up_mask_width, based_arrow_up_mask_height, based_arrow_up_mask_x_hot, based_arrow_up_mask_y_hot},
-  {boat_bits, boat_width, boat_height, boat_x_hot, boat_y_hot},
-  {boat_mask_bits, boat_mask_width, boat_mask_height, boat_mask_x_hot, boat_mask_y_hot},
-  {bogosity_bits, bogosity_width, bogosity_height, bogosity_x_hot, bogosity_y_hot},
-  {bogosity_mask_bits, bogosity_mask_width, bogosity_mask_height, bogosity_mask_x_hot, bogosity_mask_y_hot},
-  {bottom_left_corner_bits, bottom_left_corner_width, bottom_left_corner_height, bottom_left_corner_x_hot, bottom_left_corner_y_hot},
-  {bottom_left_corner_mask_bits, bottom_left_corner_mask_width, bottom_left_corner_mask_height, bottom_left_corner_mask_x_hot, bottom_left_corner_mask_y_hot},
-  {bottom_right_corner_bits, bottom_right_corner_width, bottom_right_corner_height, bottom_right_corner_x_hot, bottom_right_corner_y_hot},
-  {bottom_right_corner_mask_bits, bottom_right_corner_mask_width, bottom_right_corner_mask_height, bottom_right_corner_mask_x_hot, bottom_right_corner_mask_y_hot},
-  {bottom_side_bits, bottom_side_width, bottom_side_height, bottom_side_x_hot, bottom_side_y_hot},
-  {bottom_side_mask_bits, bottom_side_mask_width, bottom_side_mask_height, bottom_side_mask_x_hot, bottom_side_mask_y_hot},
-  {bottom_tee_bits, bottom_tee_width, bottom_tee_height, bottom_tee_x_hot, bottom_tee_y_hot},
-  {bottom_tee_mask_bits, bottom_tee_mask_width, bottom_tee_mask_height, bottom_tee_mask_x_hot, bottom_tee_mask_y_hot},
-  {box_spiral_bits, box_spiral_width, box_spiral_height, box_spiral_x_hot, box_spiral_y_hot},
-  {box_spiral_mask_bits, box_spiral_mask_width, box_spiral_mask_height, box_spiral_mask_x_hot, box_spiral_mask_y_hot},
-  {center_ptr_bits, center_ptr_width, center_ptr_height, center_ptr_x_hot, center_ptr_y_hot},
-  {center_ptr_mask_bits, center_ptr_mask_width, center_ptr_mask_height, center_ptr_mask_x_hot, center_ptr_mask_y_hot},
-  {circle_bits, circle_width, circle_height, circle_x_hot, circle_y_hot},
-  {circle_mask_bits, circle_mask_width, circle_mask_height, circle_mask_x_hot, circle_mask_y_hot},
-  {clock_bits, clock_width, clock_height, clock_x_hot, clock_y_hot},
-  {clock_mask_bits, clock_mask_width, clock_mask_height, clock_mask_x_hot, clock_mask_y_hot},
-  {coffee_mug_bits, coffee_mug_width, coffee_mug_height, coffee_mug_x_hot, coffee_mug_y_hot},
-  {coffee_mug_mask_bits, coffee_mug_mask_width, coffee_mug_mask_height, coffee_mug_mask_x_hot, coffee_mug_mask_y_hot},
-  {cross_bits, cross_width, cross_height, cross_x_hot, cross_y_hot},
-  {cross_mask_bits, cross_mask_width, cross_mask_height, cross_mask_x_hot, cross_mask_y_hot},
-  {cross_reverse_bits, cross_reverse_width, cross_reverse_height, cross_reverse_x_hot, cross_reverse_y_hot},
-  {cross_reverse_mask_bits, cross_reverse_mask_width, cross_reverse_mask_height, cross_reverse_mask_x_hot, cross_reverse_mask_y_hot},
-  {crosshair_bits, crosshair_width, crosshair_height, crosshair_x_hot, crosshair_y_hot},
-  {crosshair_mask_bits, crosshair_mask_width, crosshair_mask_height, crosshair_mask_x_hot, crosshair_mask_y_hot},
-  {diamond_cross_bits, diamond_cross_width, diamond_cross_height, diamond_cross_x_hot, diamond_cross_y_hot},
-  {diamond_cross_mask_bits, diamond_cross_mask_width, diamond_cross_mask_height, diamond_cross_mask_x_hot, diamond_cross_mask_y_hot},
-  {dot_bits, dot_width, dot_height, dot_x_hot, dot_y_hot},
-  {dot_mask_bits, dot_mask_width, dot_mask_height, dot_mask_x_hot, dot_mask_y_hot},
-  {dotbox_bits, dotbox_width, dotbox_height, dotbox_x_hot, dotbox_y_hot},
-  {dotbox_mask_bits, dotbox_mask_width, dotbox_mask_height, dotbox_mask_x_hot, dotbox_mask_y_hot},
-  {double_arrow_bits, double_arrow_width, double_arrow_height, double_arrow_x_hot, double_arrow_y_hot},
-  {double_arrow_mask_bits, double_arrow_mask_width, double_arrow_mask_height, double_arrow_mask_x_hot, double_arrow_mask_y_hot},
-  {draft_large_bits, draft_large_width, draft_large_height, draft_large_x_hot, draft_large_y_hot},
-  {draft_large_mask_bits, draft_large_mask_width, draft_large_mask_height, draft_large_mask_x_hot, draft_large_mask_y_hot},
-  {draft_small_bits, draft_small_width, draft_small_height, draft_small_x_hot, draft_small_y_hot},
-  {draft_small_mask_bits, draft_small_mask_width, draft_small_mask_height, draft_small_mask_x_hot, draft_small_mask_y_hot},
-  {draped_box_bits, draped_box_width, draped_box_height, draped_box_x_hot, draped_box_y_hot},
-  {draped_box_mask_bits, draped_box_mask_width, draped_box_mask_height, draped_box_mask_x_hot, draped_box_mask_y_hot},
-  {exchange_bits, exchange_width, exchange_height, exchange_x_hot, exchange_y_hot},
-  {exchange_mask_bits, exchange_mask_width, exchange_mask_height, exchange_mask_x_hot, exchange_mask_y_hot},
-  {fleur_bits, fleur_width, fleur_height, fleur_x_hot, fleur_y_hot},
-  {fleur_mask_bits, fleur_mask_width, fleur_mask_height, fleur_mask_x_hot, fleur_mask_y_hot},
-  {gobbler_bits, gobbler_width, gobbler_height, gobbler_x_hot, gobbler_y_hot},
-  {gobbler_mask_bits, gobbler_mask_width, gobbler_mask_height, gobbler_mask_x_hot, gobbler_mask_y_hot},
-  {gumby_bits, gumby_width, gumby_height, gumby_x_hot, gumby_y_hot},
-  {gumby_mask_bits, gumby_mask_width, gumby_mask_height, gumby_mask_x_hot, gumby_mask_y_hot},
-  {hand1_bits, hand1_width, hand1_height, hand1_x_hot, hand1_y_hot},
-  {hand1_mask_bits, hand1_mask_width, hand1_mask_height, hand1_mask_x_hot, hand1_mask_y_hot},
-  {hand2_bits, hand2_width, hand2_height, hand2_x_hot, hand2_y_hot},
-  {hand2_mask_bits, hand2_mask_width, hand2_mask_height, hand2_mask_x_hot, hand2_mask_y_hot},
-  {heart_bits, heart_width, heart_height, heart_x_hot, heart_y_hot},
-  {heart_mask_bits, heart_mask_width, heart_mask_height, heart_mask_x_hot, heart_mask_y_hot},
-  {icon_bits, icon_width, icon_height, icon_x_hot, icon_y_hot},
-  {icon_mask_bits, icon_mask_width, icon_mask_height, icon_mask_x_hot, icon_mask_y_hot},
-  {iron_cross_bits, iron_cross_width, iron_cross_height, iron_cross_x_hot, iron_cross_y_hot},
-  {iron_cross_mask_bits, iron_cross_mask_width, iron_cross_mask_height, iron_cross_mask_x_hot, iron_cross_mask_y_hot},
-  {left_ptr_bits, left_ptr_width, left_ptr_height, left_ptr_x_hot, left_ptr_y_hot},
-  {left_ptr_mask_bits, left_ptr_mask_width, left_ptr_mask_height, left_ptr_mask_x_hot, left_ptr_mask_y_hot},
-  {left_side_bits, left_side_width, left_side_height, left_side_x_hot, left_side_y_hot},
-  {left_side_mask_bits, left_side_mask_width, left_side_mask_height, left_side_mask_x_hot, left_side_mask_y_hot},
-  {left_tee_bits, left_tee_width, left_tee_height, left_tee_x_hot, left_tee_y_hot},
-  {left_tee_mask_bits, left_tee_mask_width, left_tee_mask_height, left_tee_mask_x_hot, left_tee_mask_y_hot},
-  {leftbutton_bits, leftbutton_width, leftbutton_height, leftbutton_x_hot, leftbutton_y_hot},
-  {leftbutton_mask_bits, leftbutton_mask_width, leftbutton_mask_height, leftbutton_mask_x_hot, leftbutton_mask_y_hot},
-  {ll_angle_bits, ll_angle_width, ll_angle_height, ll_angle_x_hot, ll_angle_y_hot},
-  {ll_angle_mask_bits, ll_angle_mask_width, ll_angle_mask_height, ll_angle_mask_x_hot, ll_angle_mask_y_hot},
-  {lr_angle_bits, lr_angle_width, lr_angle_height, lr_angle_x_hot, lr_angle_y_hot},
-  {lr_angle_mask_bits, lr_angle_mask_width, lr_angle_mask_height, lr_angle_mask_x_hot, lr_angle_mask_y_hot},
-  {man_bits, man_width, man_height, man_x_hot, man_y_hot},
-  {man_mask_bits, man_mask_width, man_mask_height, man_mask_x_hot, man_mask_y_hot},
-  {middlebutton_bits, middlebutton_width, middlebutton_height, middlebutton_x_hot, middlebutton_y_hot},
-  {middlebutton_mask_bits, middlebutton_mask_width, middlebutton_mask_height, middlebutton_mask_x_hot, middlebutton_mask_y_hot},
-  {mouse_bits, mouse_width, mouse_height, mouse_x_hot, mouse_y_hot},
-  {mouse_mask_bits, mouse_mask_width, mouse_mask_height, mouse_mask_x_hot, mouse_mask_y_hot},
-  {pencil_bits, pencil_width, pencil_height, pencil_x_hot, pencil_y_hot},
-  {pencil_mask_bits, pencil_mask_width, pencil_mask_height, pencil_mask_x_hot, pencil_mask_y_hot},
-  {pirate_bits, pirate_width, pirate_height, pirate_x_hot, pirate_y_hot},
-  {pirate_mask_bits, pirate_mask_width, pirate_mask_height, pirate_mask_x_hot, pirate_mask_y_hot},
-  {plus_bits, plus_width, plus_height, plus_x_hot, plus_y_hot},
-  {plus_mask_bits, plus_mask_width, plus_mask_height, plus_mask_x_hot, plus_mask_y_hot},
-  {question_arrow_bits, question_arrow_width, question_arrow_height, question_arrow_x_hot, question_arrow_y_hot},
-  {question_arrow_mask_bits, question_arrow_mask_width, question_arrow_mask_height, question_arrow_mask_x_hot, question_arrow_mask_y_hot},
-  {right_ptr_bits, right_ptr_width, right_ptr_height, right_ptr_x_hot, right_ptr_y_hot},
-  {right_ptr_mask_bits, right_ptr_mask_width, right_ptr_mask_height, right_ptr_mask_x_hot, right_ptr_mask_y_hot},
-  {right_side_bits, right_side_width, right_side_height, right_side_x_hot, right_side_y_hot},
-  {right_side_mask_bits, right_side_mask_width, right_side_mask_height, right_side_mask_x_hot, right_side_mask_y_hot},
-  {right_tee_bits, right_tee_width, right_tee_height, right_tee_x_hot, right_tee_y_hot},
-  {right_tee_mask_bits, right_tee_mask_width, right_tee_mask_height, right_tee_mask_x_hot, right_tee_mask_y_hot},
-  {rightbutton_bits, rightbutton_width, rightbutton_height, rightbutton_x_hot, rightbutton_y_hot},
-  {rightbutton_mask_bits, rightbutton_mask_width, rightbutton_mask_height, rightbutton_mask_x_hot, rightbutton_mask_y_hot},
-  {rtl_logo_bits, rtl_logo_width, rtl_logo_height, rtl_logo_x_hot, rtl_logo_y_hot},
-  {rtl_logo_mask_bits, rtl_logo_mask_width, rtl_logo_mask_height, rtl_logo_mask_x_hot, rtl_logo_mask_y_hot},
-  {sailboat_bits, sailboat_width, sailboat_height, sailboat_x_hot, sailboat_y_hot},
-  {sailboat_mask_bits, sailboat_mask_width, sailboat_mask_height, sailboat_mask_x_hot, sailboat_mask_y_hot},
-  {sb_down_arrow_bits, sb_down_arrow_width, sb_down_arrow_height, sb_down_arrow_x_hot, sb_down_arrow_y_hot},
-  {sb_down_arrow_mask_bits, sb_down_arrow_mask_width, sb_down_arrow_mask_height, sb_down_arrow_mask_x_hot, sb_down_arrow_mask_y_hot},
-  {sb_h_double_arrow_bits, sb_h_double_arrow_width, sb_h_double_arrow_height, sb_h_double_arrow_x_hot, sb_h_double_arrow_y_hot},
-  {sb_h_double_arrow_mask_bits, sb_h_double_arrow_mask_width, sb_h_double_arrow_mask_height, sb_h_double_arrow_mask_x_hot, sb_h_double_arrow_mask_y_hot},
-  {sb_left_arrow_bits, sb_left_arrow_width, sb_left_arrow_height, sb_left_arrow_x_hot, sb_left_arrow_y_hot},
-  {sb_left_arrow_mask_bits, sb_left_arrow_mask_width, sb_left_arrow_mask_height, sb_left_arrow_mask_x_hot, sb_left_arrow_mask_y_hot},
-  {sb_right_arrow_bits, sb_right_arrow_width, sb_right_arrow_height, sb_right_arrow_x_hot, sb_right_arrow_y_hot},
-  {sb_right_arrow_mask_bits, sb_right_arrow_mask_width, sb_right_arrow_mask_height, sb_right_arrow_mask_x_hot, sb_right_arrow_mask_y_hot},
-  {sb_up_arrow_bits, sb_up_arrow_width, sb_up_arrow_height, sb_up_arrow_x_hot, sb_up_arrow_y_hot},
-  {sb_up_arrow_mask_bits, sb_up_arrow_mask_width, sb_up_arrow_mask_height, sb_up_arrow_mask_x_hot, sb_up_arrow_mask_y_hot},
-  {sb_v_double_arrow_bits, sb_v_double_arrow_width, sb_v_double_arrow_height, sb_v_double_arrow_x_hot, sb_v_double_arrow_y_hot},
-  {sb_v_double_arrow_mask_bits, sb_v_double_arrow_mask_width, sb_v_double_arrow_mask_height, sb_v_double_arrow_mask_x_hot, sb_v_double_arrow_mask_y_hot},
-  {shuttle_bits, shuttle_width, shuttle_height, shuttle_x_hot, shuttle_y_hot},
-  {shuttle_mask_bits, shuttle_mask_width, shuttle_mask_height, shuttle_mask_x_hot, shuttle_mask_y_hot},
-  {sizing_bits, sizing_width, sizing_height, sizing_x_hot, sizing_y_hot},
-  {sizing_mask_bits, sizing_mask_width, sizing_mask_height, sizing_mask_x_hot, sizing_mask_y_hot},
-  {spider_bits, spider_width, spider_height, spider_x_hot, spider_y_hot},
-  {spider_mask_bits, spider_mask_width, spider_mask_height, spider_mask_x_hot, spider_mask_y_hot},
-  {spraycan_bits, spraycan_width, spraycan_height, spraycan_x_hot, spraycan_y_hot},
-  {spraycan_mask_bits, spraycan_mask_width, spraycan_mask_height, spraycan_mask_x_hot, spraycan_mask_y_hot},
-  {star_bits, star_width, star_height, star_x_hot, star_y_hot},
-  {star_mask_bits, star_mask_width, star_mask_height, star_mask_x_hot, star_mask_y_hot},
-  {target_bits, target_width, target_height, target_x_hot, target_y_hot},
-  {target_mask_bits, target_mask_width, target_mask_height, target_mask_x_hot, target_mask_y_hot},
-  {tcross_bits, tcross_width, tcross_height, tcross_x_hot, tcross_y_hot},
-  {tcross_mask_bits, tcross_mask_width, tcross_mask_height, tcross_mask_x_hot, tcross_mask_y_hot},
-  {top_left_arrow_bits, top_left_arrow_width, top_left_arrow_height, top_left_arrow_x_hot, top_left_arrow_y_hot},
-  {top_left_arrow_mask_bits, top_left_arrow_mask_width, top_left_arrow_mask_height, top_left_arrow_mask_x_hot, top_left_arrow_mask_y_hot},
-  {top_left_corner_bits, top_left_corner_width, top_left_corner_height, top_left_corner_x_hot, top_left_corner_y_hot},
-  {top_left_corner_mask_bits, top_left_corner_mask_width, top_left_corner_mask_height, top_left_corner_mask_x_hot, top_left_corner_mask_y_hot},
-  {top_right_corner_bits, top_right_corner_width, top_right_corner_height, top_right_corner_x_hot, top_right_corner_y_hot},
-  {top_right_corner_mask_bits, top_right_corner_mask_width, top_right_corner_mask_height, top_right_corner_mask_x_hot, top_right_corner_mask_y_hot},
-  {top_side_bits, top_side_width, top_side_height, top_side_x_hot, top_side_y_hot},
-  {top_side_mask_bits, top_side_mask_width, top_side_mask_height, top_side_mask_x_hot, top_side_mask_y_hot},
-  {top_tee_bits, top_tee_width, top_tee_height, top_tee_x_hot, top_tee_y_hot},
-  {top_tee_mask_bits, top_tee_mask_width, top_tee_mask_height, top_tee_mask_x_hot, top_tee_mask_y_hot},
-  {trek_bits, trek_width, trek_height, trek_x_hot, trek_y_hot},
-  {trek_mask_bits, trek_mask_width, trek_mask_height, trek_mask_x_hot, trek_mask_y_hot},
-  {ul_angle_bits, ul_angle_width, ul_angle_height, ul_angle_x_hot, ul_angle_y_hot},
-  {ul_angle_mask_bits, ul_angle_mask_width, ul_angle_mask_height, ul_angle_mask_x_hot, ul_angle_mask_y_hot},
-  {umbrella_bits, umbrella_width, umbrella_height, umbrella_x_hot, umbrella_y_hot},
-  {umbrella_mask_bits, umbrella_mask_width, umbrella_mask_height, umbrella_mask_x_hot, umbrella_mask_y_hot},
-  {ur_angle_bits, ur_angle_width, ur_angle_height, ur_angle_x_hot, ur_angle_y_hot},
-  {ur_angle_mask_bits, ur_angle_mask_width, ur_angle_mask_height, ur_angle_mask_x_hot, ur_angle_mask_y_hot},
-  {watch_bits, watch_width, watch_height, watch_x_hot, watch_y_hot},
-  {watch_mask_bits, watch_mask_width, watch_mask_height, watch_mask_x_hot, watch_mask_y_hot},
-  {xterm_bits, xterm_width, xterm_height, xterm_x_hot, xterm_y_hot},
-  {xterm_mask_bits, xterm_mask_width, xterm_mask_height, xterm_mask_x_hot, xterm_mask_y_hot}
-};
-
-GdkCursor *
-gdk_cursor_new_for_display (GdkDisplay *display,GdkCursorType cursor_type)
-{
-  GdkCursor *cursor;
-  GdkDisplayDFB *dfb_display  = GDK_DISPLAY_DFB(display);
-
-  if (cursor_type >= sizeof(stock_cursors)/sizeof(stock_cursors[0]))
-    return NULL;
-
-  cursor = stock_cursors[cursor_type].cursor;
-  if (!cursor)
-    {
-      GdkCursorDirectFB     *private;
-      DFBResult              ret;
-      IDirectFBSurface      *temp;
-      IDirectFBSurface      *shape;
-
-      int width       = stock_cursors[cursor_type+1].width;
-      int height      = stock_cursors[cursor_type+1].height;
-
-      temp =gdk_display_dfb_create_surface(dfb_display,DSPF_ARGB,width,height);
-
-      if (!temp)
-        {
-          return NULL;
-        }
-      else
-        {
-          u32  *dst;
-          int     pitch;
-
-          ret = temp->Lock (temp, DSLF_WRITE, (void**)&dst, &pitch);
-          if (ret)
-            {
-              DirectFBError ("gdkcursor-directfb.c (gdk_cursor_new): "
-                             "temp->Lock", ret);
-
-              temp->Release (temp);
-
-              return NULL;
-            }
-          else
-            {
-              gint x, y;
-              gint mx, my;
-              gint  p = ((stock_cursors[cursor_type].width + 7) / 8) * 8;
-              gint mp = ((stock_cursors[cursor_type+1].width + 7) / 8) * 8;
-
-              const guchar *src;
-              const guchar *mask;
-
-              pitch >>= 2;
-
-              src  = stock_cursors[cursor_type].bits;
-              mask = stock_cursors[cursor_type+1].bits;
-
-              mx = stock_cursors[cursor_type+1].hotx - stock_cursors[cursor_type].hotx;
-              my = stock_cursors[cursor_type+1].hoty - stock_cursors[cursor_type].hoty;
-
-              for (y = 0; y < height; y++)
-                {
-                  for (x = 0; x < width; x++)
-                    {
-                      gint  bit = x-mx + (y-my) * p;
-                      gint mbit =    x +     y  * mp;
-
-                      u32 color = (x-mx < 0  ||  y-my < 0  ||
-                                     x-mx >= stock_cursors[cursor_type].width  ||
-                                     y-my >= stock_cursors[cursor_type].height)
-                        ? 0x00FFFFFF : (src[bit/8] & (1 << bit%8) ? 0 : 0x00FFFFFF);
-
-                     u8  a     = color ? 0xE0 : 0xFF;
-                      u32 alpha = mask[mbit/8] & (1 << mbit%8) ? (a << 24) : 0;
-
-                      dst[x + y*pitch] = alpha | color;
-                    }
-                }
-
-              temp->Unlock (temp);
-            }
-        }
-
-
-      width  += 2;
-      height += 2;
-
-      shape=gdk_display_dfb_create_surface(dfb_display,DSPF_ARGB,width,height);
-
-      if( !shape ) {
-       temp->Release(temp);
-       return NULL;
-      }
-
-      shape->Clear (shape, 0x80, 0x80, 0x80, 0);
-
-      shape->SetBlittingFlags (shape, (DSBLIT_BLEND_COLORALPHA |
-                                       DSBLIT_BLEND_ALPHACHANNEL));
-
-      shape->SetColor (shape, 0, 0, 0, 0x30);
-      shape->Blit (shape, temp, NULL, 0, 0);
-      shape->Blit (shape, temp, NULL, 0, 2);
-      shape->Blit (shape, temp, NULL, 2, 0);
-      shape->Blit (shape, temp, NULL, 2, 2);
-
-      shape->SetColor (shape, 0, 0, 0, 0xA0);
-      shape->Blit (shape, temp, NULL, 1, 0);
-      shape->Blit (shape, temp, NULL, 0, 1);
-      shape->Blit (shape, temp, NULL, 2, 1);
-      shape->Blit (shape, temp, NULL, 1, 2);
-
-      shape->SetColor (shape, 0, 0, 0, 0xE0);
-      shape->Blit (shape, temp, NULL, 1, 1);
-
-      temp->Release (temp);
-
-      private = g_new0 (GdkCursorDirectFB, 1);
-      cursor = (GdkCursor *) private;
-      cursor->type = GDK_CURSOR_IS_PIXMAP;
-      cursor->ref_count = 1;
-
-      private->shape = shape;
-      private->hot_x = stock_cursors[cursor_type].hotx;
-      private->hot_y = stock_cursors[cursor_type].hoty;
-
-      stock_cursors[cursor_type].cursor = cursor;
-    }
-
-  return gdk_cursor_ref (cursor);
-}
-
-GdkCursor *
-gdk_cursor_new_from_pixmap (GdkPixmap      *source,
-                            GdkPixmap      *mask,
-                            const GdkColor *fg,
-                            const GdkColor *bg,
-                            gint            x,
-                            gint            y)
-{
-  GdkCursor               *cursor;
-  GdkCursorDirectFB       *private;
-  GdkDrawableImplDirectFB *impl;
-  GdkDrawableImplDirectFB *mask_impl;
-  IDirectFBSurface        *shape;
-
-  g_return_val_if_fail (GDK_IS_PIXMAP (source), NULL);
-  g_return_val_if_fail (GDK_IS_PIXMAP (mask), NULL);
-
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (GDK_PIXMAP_OBJECT (source)->impl);
-  mask_impl = GDK_DRAWABLE_IMPL_DIRECTFB (GDK_PIXMAP_OBJECT (mask)->impl);
-
-  int width       = impl->width;
-  int height      = impl->height;
-
-  shape=gdk_display_dfb_create_surface(_gdk_display,DSPF_ARGB,width,height);
-            
-  if (!shape)
-    {
-      return NULL;
-    }
-
-  /*
-   *  The following code assumes that pixmap and mask are A8 surfaces
-   *  that correspond to X11 bitmaps. This is the traditional usage of
-   *  gdk_cursor_new_from_pixmap(). For GTK+-DirectFB it might make
-   *  sense to allow arbitrary ARGB cursors.
-   */
-
-  shape->Clear (shape, bg->red >> 8, bg->green >> 8, bg->blue >> 8, 0xFF);
-
-  shape->SetColor (shape, fg->red >> 8, fg->green >> 8, fg->blue >> 8, 0xFF);
-  shape->SetBlittingFlags (shape,
-                           DSBLIT_BLEND_ALPHACHANNEL | DSBLIT_COLORIZE);
-  shape->Blit (shape, impl->surface, NULL, 0, 0);
-
-  shape->SetPorterDuff (shape, DSPD_DST_IN);
-  shape->Blit (shape, mask_impl->surface, NULL, 0, 0);
-
-  shape->SetBlittingFlags (shape, DSBLIT_NOFX);
-  shape->SetPorterDuff (shape, DSPD_NONE);
-
-  private = g_new (GdkCursorDirectFB, 1);
-  cursor = (GdkCursor *) private;
-  cursor->type = GDK_CURSOR_IS_PIXMAP;
-  cursor->ref_count = 1;
-
-  private->shape = shape;
-  private->hot_x = x;
-  private->hot_y = y;
-
-  return cursor;
-}
-
-GdkCursor *
-gdk_cursor_new_from_pixbuf (GdkDisplay *display,
-                            GdkPixbuf  *pixbuf,
-                            gint        x,
-                            gint        y)
-{
-GdkPixmap *pixmap, *mask;
- GdkCursor  *cursor;
- gint width, height, depth = 8;
- GdkVisual* visual;
-
- /* FIXME: this is not the right way to set colours */
- GdkColor fg = { 0, 65535, 65535, 65535 };
- GdkColor bg = { 0, 65535, 65535, 65535 };
-
- g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
- g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
- g_return_val_if_fail (0 <= x && x < gdk_pixbuf_get_width (pixbuf), NULL);
- g_return_val_if_fail (0 <= y && y < gdk_pixbuf_get_height (pixbuf), NULL);
-
- width = gdk_pixbuf_get_width(pixbuf);
- height = gdk_pixbuf_get_height(pixbuf);
-
- pixmap = gdk_pixmap_new ( NULL, width, height, depth);
- mask = gdk_pixmap_new ( NULL, width, height, 1);
- visual = gdk_rgb_get_visual ();
- depth = visual->depth;
-
- gdk_pixbuf_render_pixmap_and_mask (pixbuf, &pixmap, &mask, 0);
-
- g_return_val_if_fail (GDK_IS_PIXMAP (pixmap), NULL);
- g_return_val_if_fail (GDK_IS_PIXMAP (mask), NULL);
-
- cursor = gdk_cursor_new_from_pixmap (pixmap, mask, &fg, &bg, x, y) ;
-
- g_object_unref (pixmap);
- g_object_unref (mask);
-
- /* a cursor of type GDK_CURSOR_IS_PIXMAP is returned */
- return cursor;
-
-}
-
-GdkCursor*
-gdk_cursor_new_from_name (GdkDisplay  *display,
-                          const gchar *name)
-{
- GdkCursor *cursor;
- GdkPixbuf *pixbuf;
-
- g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
- pixbuf = gdk_pixbuf_new_from_file(name, NULL);
- /* Prevents attempts to load stock X cursors from generating error messages */
- if (pixbuf == NULL)
-   return NULL;
- g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
- cursor = gdk_cursor_new_from_pixbuf (display, pixbuf, 1, 1);
- g_object_unref (pixbuf);
-
- return cursor;
-}
-
-
-GdkPixbuf*
-gdk_cursor_get_image (GdkCursor *cursor)
-{
-  g_return_val_if_fail (cursor != NULL, NULL);
-
-  return NULL;
-}
-
-
-
-void
-_gdk_cursor_destroy (GdkCursor *cursor)
-{
-  GdkCursorDirectFB *private;
-
-  g_return_if_fail (cursor != NULL);
-  g_return_if_fail (cursor->ref_count == 0);
-
-  private = (GdkCursorDirectFB *) cursor;
-
-  private->shape->Release (private->shape);
-
-  g_free (private);
-}
-
-GdkDisplay *
-gdk_cursor_get_display (GdkCursor *cursor)
-{
-  return gdk_display_get_default ();
-}
-
-guint
-gdk_display_get_default_cursor_size (GdkDisplay *display)
-{
-  g_return_val_if_fail (GDK_IS_DISPLAY (display), 0);
-
-  return 16;
-}
-
-/**
- * gdk_display_get_maximal_cursor_size:
- * @display: a #GdkDisplay
- * @width: the return location for the maximal cursor width
- * @height: the return location for the maximal cursor height
- *
- * Gets the maximal size to use for cursors on @display.
- *
- * Since: 2.4
- */
-void
-gdk_display_get_maximal_cursor_size (GdkDisplay *display,
-                                     guint       *width,
-                                     guint       *height)
-{
-  g_return_if_fail (GDK_IS_DISPLAY (display));
-
-  /* Cursor sizes in DirectFB can be large (4095x4095), but we limit this to
-     128x128 for max compatibility with the x11 backend. */
-  *width = 128;
-  *height = 128;
-}
-
-/**
- * gdk_display_supports_cursor_alpha:
- * @display: a #GdkDisplay
- *
- * Returns %TRUE if cursors can use an 8bit alpha channel
- * on @display. Otherwise, cursors are restricted to bilevel
- * alpha (i.e. a mask).
- *
- * Returns: whether cursors can have alpha channels.
- *
- * Since: 2.4
- */
-gboolean
-gdk_display_supports_cursor_alpha (GdkDisplay *display)
-{
-  g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
-  return TRUE;
-}
-
-gboolean
-gdk_display_supports_cursor_color (GdkDisplay *display)
-{
-  g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
-  return TRUE;
-}
diff --git a/gdk/directfb/gdkdirectfb.h b/gdk/directfb/gdkdirectfb.h
deleted file mode 100644 (file)
index 0b0d411..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002       convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#ifndef __GDK_DIRECTFB_H__
-#define __GDK_DIRECTFB_H__
-
-/* This define disables some experimental code
- */
-#define GDK_DIRECTFB_NO_EXPERIMENTS
-
-#include <cairo.h>
-#include <directfb.h>
-#include "gdk/gdkprivate.h"
-
-
-extern GdkWindow * _gdk_parent_root;
-
-G_BEGIN_DECLS
-
-#define GDK_ROOT_WINDOW()      _gdk_parent_root 
-
-#define GDK_WINDOW_DFB_ID(win) (GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (win)->impl)->dfb_id)
-
-
-/* used for the --transparent-unfocused hack */
-extern gboolean            gdk_directfb_apply_focus_opacity;
-
-/* used for the --enable-color-keying hack */
-extern gboolean            gdk_directfb_enable_color_keying;
-extern DFBColor            gdk_directfb_bg_color;
-extern DFBColor            gdk_directfb_bg_color_key;
-
-/* to disable antialiasing */
-extern gboolean            gdk_directfb_monochrome_fonts;
-
-
-/* GTK+-DirectFB specific functions */
-
-void        gdk_directfb_window_set_opacity (GdkWindow             *window,
-                                             guchar                 opacity);
-
-GdkVisual * gdk_directfb_visual_by_format   (DFBSurfacePixelFormat  pixel_format);
-
-IDirectFBWindow *gdk_directfb_window_lookup(GdkWindow *window);
-IDirectFBSurface *gdk_directfb_surface_lookup(GdkWindow *window);
-
-GdkWindow *gdk_directfb_create_child_window(GdkWindow *parent,
-                                            IDirectFBSurface *subsurface);
-
-
-G_END_DECLS
-
-#endif /* __GDK_DIRECTFB_H__ */
diff --git a/gdk/directfb/gdkdisplay-directfb.c b/gdk/directfb/gdkdisplay-directfb.c
deleted file mode 100644 (file)
index 895713f..0000000
+++ /dev/null
@@ -1,540 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
- */
-
-#include "config.h"
-
-#include <glib.h>
-#include "gdk.h"
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-#include "gdkscreen.h"
-#include "gdkdisplaymanager.h"
-
-
-extern void _gdk_visual_init            (void);
-extern void _gdk_events_init            (void);
-extern void _gdk_input_init             (void);
-extern void _gdk_dnd_init               (void);
-extern void _gdk_windowing_window_init  (void);
-extern void _gdk_directfb_keyboard_init (void);
-
-static gboolean   gdk_directfb_argb_font           = FALSE;
-static gint       gdk_directfb_glyph_surface_cache = 8;
-
-
-const GOptionEntry _gdk_windowing_args[] =
-{
-  { "disable-aa-fonts",0,0,G_OPTION_ARG_INT,&gdk_directfb_monochrome_fonts,NULL,NULL    },
-  { "argb-font",0,0, G_OPTION_ARG_INT, &gdk_directfb_argb_font,NULL,NULL},
-  { "transparent-unfocused",0,0, G_OPTION_ARG_INT, &gdk_directfb_apply_focus_opacity,NULL,NULL },
-  { "glyph-surface-cache",0,0,G_OPTION_ARG_INT,&gdk_directfb_glyph_surface_cache,NULL,NULL },
-  { "enable-color-keying",0,0,G_OPTION_ARG_INT,&gdk_directfb_enable_color_keying,NULL,NULL },
-  { NULL}
-};
-
-/* Main entry point for gdk in 2.6 args are parsed
- */
-GdkDisplay * gdk_display_open (const gchar *display_name)
-{
-  IDirectFB              *directfb;
-  IDirectFBDisplayLayer  *layer;
-  IDirectFBInputDevice   *keyboard;
-  DFBResult               ret;
-
-  if (_gdk_display)
-    {
-      return GDK_DISPLAY_OBJECT(_gdk_display); /* single display only */
-    }
-
-  ret = DirectFBInit (NULL, NULL);
-  if (ret != DFB_OK)
-    {
-      DirectFBError ("gdk_display_open: DirectFBInit", ret);
-      return NULL;
-    }
-
-  ret = DirectFBCreate (&directfb);
-  if (ret != DFB_OK)
-    {
-      DirectFBError ("gdk_display_open: DirectFBCreate", ret);
-      return NULL;
-    }
-
-  _gdk_display = g_object_new (GDK_TYPE_DISPLAY_DFB, NULL);
-  _gdk_display->directfb = directfb;
-
-  ret = directfb->GetDisplayLayer (directfb, DLID_PRIMARY, &layer);
-  if (ret != DFB_OK)
-    {
-      DirectFBError ("gdk_display_open: GetDisplayLayer", ret);
-      directfb->Release (directfb);
-      _gdk_display->directfb = NULL;
-      return NULL;
-    }
-
-
-  ret = directfb->GetInputDevice (directfb, DIDID_KEYBOARD, &keyboard);
-  if (ret != DFB_OK)
-    {
-      DirectFBError ("gdk_display_open: GetInputDevice", ret);
-      directfb->Release (directfb);
-      _gdk_display->directfb = NULL;
-      return NULL;
-    }
-
-  _gdk_display->layer=layer;
-  _gdk_display->keyboard=keyboard;
-
-  _gdk_directfb_keyboard_init ();
-
-  _gdk_screen = g_object_new (GDK_TYPE_SCREEN, NULL);
-
-  _gdk_visual_init ();
-  _gdk_windowing_window_init ();
-
-  gdk_screen_set_default_colormap (_gdk_screen,
-                                   gdk_screen_get_system_colormap (_gdk_screen));  _gdk_windowing_image_init ();
-
-  _gdk_events_init ();
-  _gdk_input_init ();
-  _gdk_dnd_init ();
-
-  layer->EnableCursor (layer, 1);
-
-  g_signal_emit_by_name (gdk_display_manager_get (),
-                        "display_opened", _gdk_display);
-
-  return GDK_DISPLAY_OBJECT(_gdk_display);
-}
-
-GType
-gdk_display_dfb_get_type (void)
-{
-  static GType object_type = 0;
-
-  if (!object_type)
-    {
-      const GTypeInfo object_info =
-        {
-          sizeof (GdkDisplayDFBClass),
-          (GBaseInitFunc) NULL,
-          (GBaseFinalizeFunc) NULL,
-          (GClassInitFunc) NULL,
-          NULL,                 /* class_finalize */
-          NULL,                 /* class_data */
-          sizeof (GdkDisplayDFB),
-          0,                    /* n_preallocs */
-          (GInstanceInitFunc) NULL,
-        };
-
-      object_type = g_type_register_static (GDK_TYPE_DISPLAY,
-                                            "GdkDisplayDFB",
-                                            &object_info, 0);
-    }
-
-  return object_type;
-}
-
-IDirectFBSurface * gdk_display_dfb_create_surface (GdkDisplayDFB *display,int format,int width, int height) { 
-       DFBResult              ret;
-       IDirectFBSurface      *temp;
-       DFBSurfaceDescription  dsc;
-       dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
-       dsc.width       = width;
-       dsc.height      = height;
-       dsc.pixelformat = format;
-       ret = display->directfb->CreateSurface (display->directfb, &dsc, &temp);
-        if (ret)
-        {
-          DirectFBError ("gdk_display_dfb_create_surface ", ret);
-          return NULL;
-        }
-       return temp;
-
-}
-
-
-/*************************************************************************************************
- * Displays and Screens
- */
-
-void
-_gdk_windowing_set_default_display (GdkDisplay *display)
-{
-       _gdk_display=GDK_DISPLAY_DFB(display);
-}
-
-G_CONST_RETURN gchar *
-gdk_display_get_name (GdkDisplay *display)
-{
-  return gdk_get_display_arg_name ();
-}
-
-int
-gdk_display_get_n_screens (GdkDisplay *display)
-{
-  return 1;
-}
-
-GdkScreen *
-gdk_display_get_screen (GdkDisplay *display,
-                       gint        screen_num)
-{
-  return _gdk_screen;
-}
-
-GdkScreen *
-gdk_display_get_default_screen (GdkDisplay *display)
-{
-  return _gdk_screen;
-}
-
-gboolean
-gdk_display_supports_shapes (GdkDisplay *display)
-{
-       return FALSE;
-}
-
-gboolean
-gdk_display_supports_input_shapes (GdkDisplay *display)
-{
-       return FALSE;
-}
-
-
-GdkWindow *gdk_display_get_default_group (GdkDisplay *display)
-{
-  g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
-  return  _gdk_parent_root;
-}
-
-
-/*************************************************************************************************
- * Selection and Clipboard
- */
-
-gboolean
-gdk_display_supports_selection_notification (GdkDisplay *display)
-{
-       return FALSE;
-}
-
-gboolean gdk_display_request_selection_notification  (GdkDisplay *display,
-                                                      GdkAtom     selection)
-
-{
-
-       g_warning("gdk_display_request_selection_notification Unimplemented function \n");
-       return FALSE;
-}
-
-gboolean
-gdk_display_supports_clipboard_persistence (GdkDisplay *display)
-{
-       g_warning("gdk_display_supports_clipboard_persistence Unimplemented function \n");
-       return FALSE;
-}
-
-void
-gdk_display_store_clipboard (GdkDisplay    *display,
-                             GdkWindow     *clipboard_window,
-                             guint32        time_,
-                             const GdkAtom *targets,
-                             gint           n_targets)
-{
-
-       g_warning("gdk_display_store_clipboard Unimplemented function \n");
-
-}
-
-
-/*************************************************************************************************
- * Pointer
- */
-
-static gboolean _gdk_directfb_pointer_implicit_grab = FALSE;
-
-GdkGrabStatus
-gdk_directfb_pointer_grab (GdkWindow    *window,
-                           gint          owner_events,
-                           GdkEventMask  event_mask,
-                           GdkWindow    *confine_to,
-                           GdkCursor    *cursor,
-                           guint32       time,
-                           gboolean      implicit_grab)
-{
-  GdkWindow             *toplevel;
-  GdkWindowImplDirectFB *impl;
-  if (_gdk_directfb_pointer_grab_window)
-    {
-      if (implicit_grab && !_gdk_directfb_pointer_implicit_grab)
-        return GDK_GRAB_ALREADY_GRABBED;
-
-      gdk_pointer_ungrab (time);
-    }
-
-  toplevel = gdk_directfb_window_find_toplevel (window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (toplevel)->impl);
-
-  if (impl->window)
-    {
-      if (impl->window->GrabPointer (impl->window) == DFB_LOCKED)
-        return GDK_GRAB_ALREADY_GRABBED;
-    }
-
-  if (event_mask & GDK_BUTTON_MOTION_MASK)
-    event_mask |= (GDK_BUTTON1_MOTION_MASK |
-                   GDK_BUTTON2_MOTION_MASK |
-                   GDK_BUTTON3_MOTION_MASK);
-
-  _gdk_directfb_pointer_implicit_grab     = implicit_grab;
-  _gdk_directfb_pointer_grab_window       = g_object_ref (window);
-  _gdk_directfb_pointer_grab_owner_events = owner_events;
-
-  _gdk_directfb_pointer_grab_confine      = (confine_to ?
-                                             g_object_ref (confine_to) : NULL);
-  _gdk_directfb_pointer_grab_events       = event_mask;
-  _gdk_directfb_pointer_grab_cursor       = (cursor ?
-                                             gdk_cursor_ref (cursor) : NULL);
-
-
-  gdk_directfb_window_send_crossing_events (NULL,
-                                            window,
-                                            GDK_CROSSING_GRAB);
-
-  return GDK_GRAB_SUCCESS;
-}
-
-void
-gdk_directfb_pointer_ungrab (guint32  time,
-                             gboolean implicit_grab)
-{
-  GdkWindow             *toplevel;
-  GdkWindow             *mousewin;
-  GdkWindow             *old_grab_window;
-  GdkWindowImplDirectFB *impl;
-
-  if (implicit_grab && !_gdk_directfb_pointer_implicit_grab)
-    return;
-
-  if (!_gdk_directfb_pointer_grab_window)
-    return;
-
-  toplevel =
-    gdk_directfb_window_find_toplevel (_gdk_directfb_pointer_grab_window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (toplevel)->impl);
-
-  if (impl->window)
-    impl->window->UngrabPointer (impl->window);
-
-  if (_gdk_directfb_pointer_grab_confine)
-    {
-      g_object_unref (_gdk_directfb_pointer_grab_confine);
-      _gdk_directfb_pointer_grab_confine = NULL;
-    }
-
-  if (_gdk_directfb_pointer_grab_cursor)
-    {
-      gdk_cursor_unref (_gdk_directfb_pointer_grab_cursor);
-      _gdk_directfb_pointer_grab_cursor = NULL;
-    }
-
-  old_grab_window = _gdk_directfb_pointer_grab_window;
-
-  _gdk_directfb_pointer_grab_window   = NULL;
-  _gdk_directfb_pointer_implicit_grab = FALSE;
-
-  mousewin = gdk_window_at_pointer (NULL, NULL);
-  gdk_directfb_window_send_crossing_events (old_grab_window,
-                                            mousewin,
-                                            GDK_CROSSING_UNGRAB);
-  g_object_unref (old_grab_window);
-}
-
-void
-gdk_display_pointer_ungrab (GdkDisplay *display,
-                            guint32 time)
-{
-  GdkPointerGrabInfo *grab = _gdk_display_get_last_pointer_grab (display);
-
-  if (grab)
-    {
-      grab->serial_end = 0;
-    }
-
-  _gdk_display_pointer_grab_update (display, 0);
-}
-
-
-/*************************************************************************************************
- * Keyboard
- */
-
-GdkGrabStatus
-gdk_directfb_keyboard_grab (GdkDisplay *display,
-                            GdkWindow  *window,
-                            gint        owner_events,
-                            guint32     time)
-{
-  GdkWindow             *toplevel;
-  GdkWindowImplDirectFB *impl;
-
-  g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
-
-  if (_gdk_directfb_keyboard_grab_window)
-    gdk_keyboard_ungrab (time);
-
-  toplevel = gdk_directfb_window_find_toplevel (window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (toplevel)->impl);
-
-  if (impl->window)
-    {
-      if (impl->window->GrabKeyboard (impl->window) == DFB_LOCKED)
-        return GDK_GRAB_ALREADY_GRABBED;
-    }
-
-  _gdk_directfb_keyboard_grab_window = g_object_ref (window);
-  _gdk_directfb_keyboard_grab_owner_events = owner_events;
-  return GDK_GRAB_SUCCESS;
-}
-
-void
-gdk_directfb_keyboard_ungrab (GdkDisplay *display,
-                              guint32     time)
-{
-  GdkWindow             *toplevel;
-  GdkWindowImplDirectFB *impl;
-
-  if (!_gdk_directfb_keyboard_grab_window)
-    return;
-
-  toplevel = gdk_directfb_window_find_toplevel (_gdk_directfb_keyboard_grab_window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (toplevel)->impl);
-
-  if (impl->window)
-    impl->window->UngrabKeyboard (impl->window);
-
-  g_object_unref (_gdk_directfb_keyboard_grab_window);
-  _gdk_directfb_keyboard_grab_window = NULL;
-}
-
-/*
- *--------------------------------------------------------------
- * gdk_keyboard_grab
- *
- *   Grabs the keyboard to a specific window
- *
- * Arguments:
- *   "window" is the window which will receive the grab
- *   "owner_events" specifies whether events will be reported as is,
- *     or relative to "window"
- *   "time" specifies the time
- *
- * Results:
- *
- * Side effects:
- *   requires a corresponding call to gdk_keyboard_ungrab
- *
- *--------------------------------------------------------------
- */
-
-GdkGrabStatus
-gdk_display_keyboard_grab (GdkDisplay *display,
-                           GdkWindow  *window,
-                           gint        owner_events,
-                           guint32     time)
-{
-  return gdk_directfb_keyboard_grab (display, window, owner_events, time);
-}
-
-void
-gdk_display_keyboard_ungrab (GdkDisplay *display,
-                             guint32     time)
-{
-  return gdk_directfb_keyboard_ungrab (display, time);
-}
-
-
-/*************************************************************************************************
- * Misc Stuff
- */
-
-void
-gdk_display_beep (GdkDisplay *display)
-{
-}
-
-void
-gdk_display_sync (GdkDisplay *display)
-{
-}
-
-void
-gdk_display_flush (GdkDisplay *display)
-{
-}
-
-
-
-/*************************************************************************************************
- * Notifications
- */
-
-void
-gdk_notify_startup_complete (void)
-{
-}
-
-/**
- * gdk_notify_startup_complete_with_id:
- * @startup_id: a startup-notification identifier, for which notification
- *              process should be completed
- * 
- * Indicates to the GUI environment that the application has finished
- * loading, using a given identifier.
- * 
- * GTK+ will call this function automatically for #GtkWindow with custom
- * startup-notification identifier unless
- * gtk_window_set_auto_startup_notification() is called to disable
- * that feature.
- *
- * Since: 2.12
- **/
-void
-gdk_notify_startup_complete_with_id (const gchar* startup_id)
-{
-}
-
-
-/*************************************************************************************************
- * Compositing
- */
-
-gboolean
-gdk_display_supports_composite (GdkDisplay *display)
-{
-    return FALSE;
-}
diff --git a/gdk/directfb/gdkdisplay-directfb.h b/gdk/directfb/gdkdisplay-directfb.h
deleted file mode 100644 (file)
index f5e028a..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef GDK_DISPLAY_DFB_H
-#define GDK_DISPLAY_DFB_H
-
-#include <directfb.h>
-#include <gdk/gdkdisplay.h>
-#include <gdk/gdkkeys.h>
-
-G_BEGIN_DECLS
-
-typedef struct _GdkDisplayDFB GdkDisplayDFB;
-typedef struct _GdkDisplayDFBClass GdkDisplayDFBClass;
-
-
-#define GDK_TYPE_DISPLAY_DFB              (gdk_display_dfb_get_type())
-#define GDK_DISPLAY_DFB(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DISPLAY_DFB, GdkDisplayDFB))
-#define GDK_DISPLAY_DFB_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DISPLAY_DFB, GdkDisplayDFBClass))
-#define GDK_IS_DISPLAY_DFB(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DISPLAY_DFB))
-#define GDK_IS_DISPLAY_DFB_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DISPLAY_DFB))
-#define GDK_DISPLAY_DFB_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DISPLAY_DFB, GdkDisplayDFBClass))
-
-struct _GdkDisplayDFB
-{
-  GdkDisplay parent;
-  IDirectFB              *directfb;
-  IDirectFBDisplayLayer  *layer;
-  IDirectFBEventBuffer   *buffer;
-  IDirectFBInputDevice   *keyboard;
-  GdkKeymap *keymap;
-};
-
-struct _GdkDisplayDFBClass
-{
-  GdkDisplayClass parent;
-};
-
-GType      gdk_display_dfb_get_type            (void);
-
-IDirectFBSurface * gdk_display_dfb_create_surface (GdkDisplayDFB *display,int format,int width, int height);
-
-G_END_DECLS
-
-#endif /* GDK_DISPLAY_DFB_H */
diff --git a/gdk/directfb/gdkdnd-directfb.c b/gdk/directfb/gdkdnd-directfb.c
deleted file mode 100644 (file)
index f4cd256..0000000
+++ /dev/null
@@ -1,634 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1999 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkdnd.h"
-#include "gdkproperty.h"
-
-typedef struct _GdkDragContextPrivate GdkDragContextPrivate;
-
-typedef enum
-{
-  GDK_DRAG_STATUS_DRAG,
-  GDK_DRAG_STATUS_MOTION_WAIT,
-  GDK_DRAG_STATUS_ACTION_WAIT,
-  GDK_DRAG_STATUS_DROP
-} GtkDragStatus;
-
-/* Structure that holds information about a drag in progress.
- * this is used on both source and destination sides.
- */
-struct _GdkDragContextPrivate
-{
-  GdkAtom local_selection;
-
-  guint16 last_x;              /* Coordinates from last event */
-  guint16 last_y;
-  guint   drag_status : 4;     /* current status of drag      */
-};
-
-/* Drag Contexts */
-
-static GList          *contexts          = NULL;
-static GdkDragContext *current_dest_drag = NULL;
-
-
-#define GDK_DRAG_CONTEXT_PRIVATE_DATA(ctx) ((GdkDragContextPrivate *) GDK_DRAG_CONTEXT (ctx)->windowing_data)
-
-static void gdk_drag_context_finalize (GObject *object);
-
-G_DEFINE_TYPE (GdkDragContext, gdk_drag_context, G_TYPE_OBJECT)
-
-static void
-gdk_drag_context_init (GdkDragContext *dragcontext)
-{
-  GdkDragContextPrivate *private;
-
-  private = G_TYPE_INSTANCE_GET_PRIVATE (dragcontext,
-                                         GDK_TYPE_DRAG_CONTEXT,
-                                         GdkDragContextPrivate);
-
-  dragcontext->windowing_data = private;
-
-  contexts = g_list_prepend (contexts, dragcontext);
-}
-
-static void
-gdk_drag_context_class_init (GdkDragContextClass *klass)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
-  object_class->finalize = gdk_drag_context_finalize;
-
-  g_type_class_add_private (object_class, sizeof (GdkDragContextPrivate));
-}
-
-static void
-gdk_drag_context_finalize (GObject *object)
-{
-  GdkDragContext *context = GDK_DRAG_CONTEXT (object);
-
-  g_list_free (context->targets);
-
-  if (context->source_window)
-    g_object_unref (context->source_window);
-
-  if (context->dest_window)
-    g_object_unref (context->dest_window);
-
-  contexts = g_list_remove (contexts, context);
-
-  G_OBJECT_CLASS (gdk_drag_context_parent_class)->finalize (object);
-}
-
-GdkDragContext *
-gdk_drag_context_new (void)
-{
-  return g_object_new (gdk_drag_context_get_type (), NULL);
-}
-
-static GdkDragContext *
-gdk_drag_context_find (gboolean     is_source,
-                      GdkWindow   *source,
-                      GdkWindow   *dest)
-{
-  GdkDragContext        *context;
-  GdkDragContextPrivate *private;
-  GList                 *list;
-
-  for (list = contexts; list; list = list->next)
-    {
-      context = (GdkDragContext *) list->data;
-      private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);
-
-      if ((!context->is_source == !is_source) &&
-         ((source == NULL) ||
-           (context->source_window && (context->source_window == source))) &&
-         ((dest == NULL) ||
-           (context->dest_window && (context->dest_window == dest))))
-         return context;
-    }
-
-  return NULL;
-}
-
-
-/************************** Public API ***********************/
-
-void
-_gdk_dnd_init (void)
-{
-}
-
-/* Source side */
-
-static void
-local_send_leave (GdkDragContext  *context,
-                 guint32          time)
-{
-  GdkEvent event;
-
-  if ((current_dest_drag != NULL) &&
-      (current_dest_drag->protocol == GDK_DRAG_PROTO_LOCAL) &&
-      (current_dest_drag->source_window == context->source_window))
-    {
-      event.dnd.type       = GDK_DRAG_LEAVE;
-      event.dnd.window     = context->dest_window;
-      /* Pass ownership of context to the event */
-      event.dnd.context    = current_dest_drag;
-      event.dnd.send_event = FALSE;
-      event.dnd.time       = time;
-
-      current_dest_drag = NULL;
-
-      gdk_event_put (&event);
-    }
-}
-
-static void
-local_send_enter (GdkDragContext *context,
-                 guint32         time)
-{
-  GdkDragContextPrivate *private;
-  GdkDragContext        *new_context;
-  GdkEvent event;
-
-  private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);
-
-  if (!private->local_selection)
-    private->local_selection = gdk_atom_intern ("LocalDndSelection", FALSE);
-
-  if (current_dest_drag != NULL)
-    {
-      g_object_unref (current_dest_drag);
-      current_dest_drag = NULL;
-    }
-
-  new_context = gdk_drag_context_new ();
-  new_context->protocol  = GDK_DRAG_PROTO_LOCAL;
-  new_context->is_source = FALSE;
-
-  new_context->source_window = g_object_ref (context->source_window);
-
-  new_context->dest_window   = g_object_ref (context->dest_window);
-
-  new_context->targets = g_list_copy (context->targets);
-
-  gdk_window_set_events (new_context->source_window,
-                        gdk_window_get_events (new_context->source_window) |
-                        GDK_PROPERTY_CHANGE_MASK);
-  new_context->actions = context->actions;
-
-  event.dnd.type       = GDK_DRAG_ENTER;
-  event.dnd.window     = context->dest_window;
-  event.dnd.send_event = FALSE;
-  event.dnd.context    = new_context;
-  event.dnd.time       = time;
-
-  current_dest_drag = new_context;
-
-  (GDK_DRAG_CONTEXT_PRIVATE_DATA (new_context))->local_selection =
-    private->local_selection;
-
-  gdk_event_put (&event);
-}
-
-static void
-local_send_motion (GdkDragContext  *context,
-                   gint            x_root,
-                   gint            y_root,
-                   GdkDragAction   action,
-                   guint32         time)
-{
-  GdkEvent event;
-
-  if ((current_dest_drag != NULL) &&
-      (current_dest_drag->protocol == GDK_DRAG_PROTO_LOCAL) &&
-      (current_dest_drag->source_window == context->source_window))
-    {
-      event.dnd.type       = GDK_DRAG_MOTION;
-      event.dnd.window     = current_dest_drag->dest_window;
-      event.dnd.send_event = FALSE;
-      event.dnd.context    = current_dest_drag;
-      event.dnd.time       = time;
-      event.dnd.x_root     = x_root;
-      event.dnd.y_root     = y_root;
-
-      current_dest_drag->suggested_action = action;
-      current_dest_drag->actions          = action;
-
-      (GDK_DRAG_CONTEXT_PRIVATE_DATA (current_dest_drag))->last_x = x_root;
-      (GDK_DRAG_CONTEXT_PRIVATE_DATA (current_dest_drag))->last_y = y_root;
-
-      GDK_DRAG_CONTEXT_PRIVATE_DATA (context)->drag_status = GDK_DRAG_STATUS_MOTION_WAIT;
-
-      gdk_event_put (&event);
-    }
-}
-
-static void
-local_send_drop (GdkDragContext *context,
-                 guint32         time)
-{
-  GdkEvent event;
-
-  if ((current_dest_drag != NULL) &&
-      (current_dest_drag->protocol == GDK_DRAG_PROTO_LOCAL) &&
-      (current_dest_drag->source_window == context->source_window))
-    {
-      GdkDragContextPrivate *private;
-      private = GDK_DRAG_CONTEXT_PRIVATE_DATA (current_dest_drag);
-
-      event.dnd.type       = GDK_DROP_START;
-      event.dnd.window     = current_dest_drag->dest_window;
-      event.dnd.send_event = FALSE;
-      event.dnd.context    = current_dest_drag;
-      event.dnd.time       = time;
-      event.dnd.x_root     = private->last_x;
-      event.dnd.y_root     = private->last_y;
-
-      gdk_event_put (&event);
-    }
-}
-
-static void
-gdk_drag_do_leave (GdkDragContext *context,
-                   guint32         time)
-{
-  if (context->dest_window)
-    {
-      switch (context->protocol)
-       {
-       case GDK_DRAG_PROTO_LOCAL:
-         local_send_leave (context, time);
-         break;
-
-       default:
-         break;
-       }
-
-      g_object_unref (context->dest_window);
-      context->dest_window = NULL;
-    }
-}
-
-GdkDragContext *
-gdk_drag_begin (GdkWindow *window,
-               GList     *targets)
-{
-  GList          *list;
-  GdkDragContext *new_context;
-
-  g_return_val_if_fail (window != NULL, NULL);
-
-  g_object_ref (window);
-
-  new_context = gdk_drag_context_new ();
-  new_context->is_source     = TRUE;
-  new_context->source_window = window;
-  new_context->targets       = NULL;
-  new_context->actions       = 0;
-
-  for (list = targets; list; list = list->next)
-    new_context->targets = g_list_append (new_context->targets, list->data);
-
-  return new_context;
-}
-
-guint32
-gdk_drag_get_protocol_for_display(GdkDisplay *display, guint32          xid,
-                                   GdkDragProtocol *protocol)
-{
-  GdkWindow *window;
-
-  window = gdk_window_lookup ((GdkNativeWindow) xid);
-
-  if (window &&
-      g_object_get_data (G_OBJECT (window), "gdk-dnd-registered") != NULL)
-    {
-      *protocol = GDK_DRAG_PROTO_LOCAL;
-      return xid;
-    }
-
-  *protocol = GDK_DRAG_PROTO_NONE;
-  return 0;
-}
-
-void
-gdk_drag_find_window_for_screen (GdkDragContext   *context,
-                                 GdkWindow        *drag_window,
-                                 GdkScreen        *screen,
-                                 gint              x_root,
-                                 gint              y_root,
-                                 GdkWindow       **dest_window,
-                                 GdkDragProtocol  *protocol)
-{
-  GdkWindow *dest;
-
-  g_return_if_fail (context != NULL);
-
-  dest = gdk_window_get_pointer (NULL, &x_root, &y_root, NULL);
-
-  if (context->dest_window != dest)
-    {
-      guint32 recipient;
-
-      /* Check if new destination accepts drags, and which protocol */
-      if ((recipient = gdk_drag_get_protocol (GDK_WINDOW_DFB_ID (dest),
-                                              protocol)))
-       {
-         *dest_window = gdk_window_lookup ((GdkNativeWindow) recipient);
-         if (dest_window)
-            g_object_ref (*dest_window);
-       }
-      else
-       *dest_window = NULL;
-    }
-  else
-    {
-      *dest_window = context->dest_window;
-      if (*dest_window)
-       g_object_ref (*dest_window);
-
-      *protocol = context->protocol;
-    }
-
-}
-
-gboolean
-gdk_drag_motion (GdkDragContext  *context,
-                GdkWindow       *dest_window,
-                GdkDragProtocol  protocol,
-                gint             x_root,
-                gint             y_root,
-                GdkDragAction    suggested_action,
-                GdkDragAction    possible_actions,
-                guint32          time)
-{
-  GdkDragContextPrivate *private;
-
-  g_return_val_if_fail (context != NULL, FALSE);
-
-  private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);
-
-  if (context->dest_window != dest_window)
-    {
-      GdkEvent  event;
-
-      /* Send a leave to the last destination */
-      gdk_drag_do_leave (context, time);
-      private->drag_status = GDK_DRAG_STATUS_DRAG;
-
-      /* Check if new destination accepts drags, and which protocol */
-      if (dest_window)
-       {
-         context->dest_window = g_object_ref (dest_window);
-         context->protocol = protocol;
-
-         switch (protocol)
-           {
-           case GDK_DRAG_PROTO_LOCAL:
-             local_send_enter (context, time);
-             break;
-
-           default:
-             break;
-           }
-         context->suggested_action = suggested_action;
-       }
-      else
-       {
-         context->dest_window = NULL;
-         context->action = 0;
-       }
-
-      /* Push a status event, to let the client know that
-       * the drag changed
-       */
-
-      event.dnd.type       = GDK_DRAG_STATUS;
-      event.dnd.window     = context->source_window;
-      /* We use this to signal a synthetic status. Perhaps
-       * we should use an extra field...
-       */
-      event.dnd.send_event = TRUE;
-      event.dnd.context    = context;
-      event.dnd.time       = time;
-
-      gdk_event_put (&event);
-    }
-  else
-    {
-      context->suggested_action = suggested_action;
-    }
-
-  /* Send a drag-motion event */
-
-  private->last_x = x_root;
-  private->last_y = y_root;
-
-  if (context->dest_window)
-    {
-      if (private->drag_status == GDK_DRAG_STATUS_DRAG)
-       {
-         switch (context->protocol)
-           {
-           case GDK_DRAG_PROTO_LOCAL:
-             local_send_motion (context,
-                                 x_root, y_root, suggested_action, time);
-             break;
-
-           case GDK_DRAG_PROTO_NONE:
-             g_warning ("GDK_DRAG_PROTO_NONE is not valid in gdk_drag_motion()");
-             break;
-           default:
-             break;
-           }
-       }
-      else
-       return TRUE;
-    }
-
-  return FALSE;
-}
-
-void
-gdk_drag_drop (GdkDragContext *context,
-              guint32         time)
-{
-  g_return_if_fail (context != NULL);
-
-  if (context->dest_window)
-    {
-      switch (context->protocol)
-       {
-       case GDK_DRAG_PROTO_LOCAL:
-         local_send_drop (context, time);
-         break;
-       case GDK_DRAG_PROTO_NONE:
-         g_warning ("GDK_DRAG_PROTO_NONE is not valid in gdk_drag_drop()");
-         break;
-       default:
-         break;
-       }
-    }
-}
-
-void
-gdk_drag_abort (GdkDragContext *context,
-               guint32         time)
-{
-  g_return_if_fail (context != NULL);
-
-  gdk_drag_do_leave (context, time);
-}
-
-/* Destination side */
-
-void
-gdk_drag_status (GdkDragContext   *context,
-                GdkDragAction     action,
-                guint32           time)
-{
-  GdkDragContextPrivate *private;
-  GdkDragContext        *src_context;
-  GdkEvent event;
-
-  g_return_if_fail (context != NULL);
-
-  private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);
-
-  src_context = gdk_drag_context_find (TRUE,
-                                      context->source_window,
-                                      context->dest_window);
-
-  if (src_context)
-    {
-      GdkDragContextPrivate *private;
-
-      private = GDK_DRAG_CONTEXT_PRIVATE_DATA (src_context);
-
-      if (private->drag_status == GDK_DRAG_STATUS_MOTION_WAIT)
-       private->drag_status = GDK_DRAG_STATUS_DRAG;
-
-      event.dnd.type       = GDK_DRAG_STATUS;
-      event.dnd.window     = src_context->source_window;
-      event.dnd.send_event = FALSE;
-      event.dnd.context    = src_context;
-      event.dnd.time       = time;
-
-      src_context->action = action;
-
-      gdk_event_put (&event);
-    }
-}
-
-void
-gdk_drop_reply (GdkDragContext   *context,
-               gboolean          ok,
-               guint32           time)
-{
-  g_return_if_fail (context != NULL);
-}
-
-void
-gdk_drop_finish (GdkDragContext   *context,
-                gboolean          success,
-                guint32           time)
-{
-  GdkDragContextPrivate *private;
-  GdkDragContext        *src_context;
-  GdkEvent event;
-
-  g_return_if_fail (context != NULL);
-
-  private = GDK_DRAG_CONTEXT_PRIVATE_DATA (context);
-
-  src_context = gdk_drag_context_find (TRUE,
-                                      context->source_window,
-                                      context->dest_window);
-  if (src_context)
-    {
-      g_object_ref (src_context);
-
-      event.dnd.type       = GDK_DROP_FINISHED;
-      event.dnd.window     = src_context->source_window;
-      event.dnd.send_event = FALSE;
-      event.dnd.context    = src_context;
-
-      gdk_event_put (&event);
-    }
-}
-
-gboolean
-gdk_drag_drop_succeeded (GdkDragContext *context)
-{
-       g_warning("gdk_drag_drop_succeeded unimplemented \n");
-       return TRUE;
-}
-
-void
-gdk_window_register_dnd (GdkWindow      *window)
-{
-  g_return_if_fail (window != NULL);
-
-  if (g_object_get_data (G_OBJECT (window), "gdk-dnd-registered") != NULL)
-    return;
-
-  g_object_set_data (G_OBJECT (window),
-                     "gdk-dnd-registered",
-                     GINT_TO_POINTER (TRUE));
-
-}
-
-/*************************************************************
- * gdk_drag_get_selection:
- *     Returns the selection atom for the current source window
- *   arguments:
- *
- *   results:
- *************************************************************/
-
-GdkAtom
-gdk_drag_get_selection (GdkDragContext *context)
-{
-  g_return_val_if_fail (context != NULL, GDK_NONE);
-
-  if (context->protocol == GDK_DRAG_PROTO_LOCAL)
-    return (GDK_DRAG_CONTEXT_PRIVATE_DATA (context))->local_selection;
-  else
-    return GDK_NONE;
-}
diff --git a/gdk/directfb/gdkdrawable-directfb.c b/gdk/directfb/gdkdrawable-directfb.c
deleted file mode 100644 (file)
index 0a0de9e..0000000
+++ /dev/null
@@ -1,626 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-#include <assert.h>
-
-#include <string.h>
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "../../gdk-pixbuf/gdk-pixbuf-private.h"
-
-#include "gdkinternals.h"
-
-#include "cairo-directfb.h"
-
-
-#include <direct/debug.h>
-#include <direct/messages.h>
-
-/*
- * There can be multiple domains in one file and one domain (same same) in multiple files.
- */
-D_DEBUG_DOMAIN( GDKDFB_Drawable, "GDKDFB/Drawable", "GDK DirectFB Drawable" );
-D_DEBUG_DOMAIN( GDKDFB_DrawClip, "GDKDFB/DrawClip", "GDK DirectFB Drawable Clip Region" );
-
-
-/* From DirectFB's <gfx/generix/duffs_device.h> */
-#define DUFF_1() \
-               case 1:\
-                    SET_PIXEL( D[0], S[0] );
-
-#define DUFF_2() \
-               case 3:\
-                    SET_PIXEL( D[2], S[2] );\
-               case 2:\
-                    SET_PIXEL( D[1], S[1] );\
-               DUFF_1()
-
-#define DUFF_3() \
-               case 7:\
-                    SET_PIXEL( D[6], S[6] );\
-               case 6:\
-                    SET_PIXEL( D[5], S[5] );\
-               case 5:\
-                    SET_PIXEL( D[4], S[4] );\
-               case 4:\
-                    SET_PIXEL( D[3], S[3] );\
-               DUFF_2()
-
-#define DUFF_4() \
-               case 15:\
-                    SET_PIXEL( D[14], S[14] );\
-               case 14:\
-                    SET_PIXEL( D[13], S[13] );\
-               case 13:\
-                    SET_PIXEL( D[12], S[12] );\
-               case 12:\
-                    SET_PIXEL( D[11], S[11] );\
-               case 11:\
-                    SET_PIXEL( D[10], S[10] );\
-               case 10:\
-                    SET_PIXEL( D[9], S[9] );\
-               case 9:\
-                    SET_PIXEL( D[8], S[8] );\
-               case 8:\
-                    SET_PIXEL( D[7], S[7] );\
-               DUFF_3()
-
-#define SET_PIXEL_DUFFS_DEVICE_N( D, S, w, n ) \
-do {\
-     while (w) {\
-          register int l = w & ((1 << n) - 1);\
-          switch (l) {\
-               default:\
-                    l = (1 << n);\
-                    SET_PIXEL( D[(1 << n)-1], S[(1 << n)-1] );\
-               DUFF_##n()\
-          }\
-          D += l;\
-          S += l;\
-          w -= l;\
-     }\
-} while(0)
-
-
-static GdkScreen * gdk_directfb_get_screen (GdkDrawable    *drawable);
-static void gdk_drawable_impl_directfb_class_init (GdkDrawableImplDirectFBClass *klass);
-
-static cairo_surface_t *gdk_directfb_ref_cairo_surface (GdkDrawable *drawable);
-
-
-static gboolean  accelerated_alpha_blending = FALSE;
-static gpointer  parent_class               = NULL;
-static const cairo_user_data_key_t gdk_directfb_cairo_key;
-
-
-/**********************************************************
- * DirectFB specific implementations of generic functions *
- **********************************************************/
-
-
-static void
-gdk_directfb_set_colormap (GdkDrawable *drawable,
-                           GdkColormap *colormap)
-{
-  GdkDrawableImplDirectFB *impl;
-
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
-
-  D_DEBUG_AT( GDKDFB_Drawable, "%s( %p, %p ) <- old %p\n", G_STRFUNC, drawable, colormap, impl->colormap );
-
-  if (impl->colormap == colormap)
-    return;
-
-  if (impl->colormap)
-    g_object_unref (impl->colormap);
-
-  impl->colormap = colormap;
-
-  if (colormap)
-    g_object_ref (colormap);
-}
-
-static GdkColormap*
-gdk_directfb_get_colormap (GdkDrawable *drawable)
-{
-  GdkColormap *retval;
-
-  retval = GDK_DRAWABLE_IMPL_DIRECTFB (drawable)->colormap;
-
-  if (!retval) {
-    retval = gdk_colormap_get_system ();
-       gdk_directfb_set_colormap(drawable,retval);
-  }
-
-  return retval;
-}
-
-static gint
-gdk_directfb_get_depth (GdkDrawable *drawable)
-{
-  GdkDrawableImplDirectFB *impl = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
-
-  return DFB_BITS_PER_PIXEL (impl->format);
-}
-
-static void
-gdk_directfb_get_size (GdkDrawable *drawable,
-                       gint        *width,
-                       gint        *height)
-{
-  GdkDrawableImplDirectFB *impl;
-
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
-
-  if (width)
-    *width = impl->width;
-
-  if (height)
-    *height = impl->height;
-}
-
-static GdkVisual*
-gdk_directfb_get_visual (GdkDrawable *drawable)
-{
-  return gdk_visual_get_system ();
-}
-
-/* Calculates the real clipping region for a drawable, taking into account
- * other windows and the gc clip region.
- */
-void
-gdk_directfb_clip_region (GdkDrawable  *drawable,
-                          GdkGC        *gc,
-                          GdkRectangle *draw_rect,
-                          cairo_region_t    *ret_clip)
-{
-  GdkDrawableImplDirectFB *private;
-  GdkRectangle             rect;
-
-  g_return_if_fail (GDK_IS_DRAWABLE (drawable));
-  g_return_if_fail (GDK_IS_DRAWABLE_IMPL_DIRECTFB (drawable));
-  g_return_if_fail (ret_clip != NULL);
-
-  D_DEBUG_AT( GDKDFB_DrawClip, "%s( %p, %p, %p )\n", G_STRFUNC, drawable, gc, draw_rect );
-
-  private = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
-
-  if (!draw_rect)
-    {
-      rect.x      = 0;
-      rect.y      = 0;
-      rect.width  = private->width;
-      rect.height = private->height;
-
-      draw_rect = &rect;
-    }
-  D_DEBUG_AT( GDKDFB_DrawClip, "  -> draw rectangle   == %4d,%4d - %4dx%4d =\n",
-              draw_rect->x, draw_rect->y, draw_rect->width, draw_rect->height );
-
-  temp_region_init_rectangle( ret_clip, draw_rect );
-
-  if (private->buffered) {
-       D_DEBUG_AT( GDKDFB_DrawClip, "  -> buffered region   > %4d,%4d - %4dx%4d <  (%ld boxes)\n",
-                   GDKDFB_RECTANGLE_VALS_FROM_BOX( &private->paint_region.extents ),
-                   private->paint_region.numRects );
-
-    cairo_region_intersect (ret_clip, &private->paint_region);
-  }
-
-  if (gc)
-    {
-      GdkGCDirectFB *gc_private = GDK_GC_DIRECTFB (gc);
-      cairo_region_t     *region     = &gc_private->clip_region;
-
-      if (region->numRects)
-        {
-          D_DEBUG_AT( GDKDFB_DrawClip, "  -> clipping region   > %4d,%4d - %4dx%4d <  (%ld boxes)\n",
-                      GDKDFB_RECTANGLE_VALS_FROM_BOX( &region->extents ), region->numRects );
-
-          if (gc->clip_x_origin || gc->clip_y_origin)
-            {
-              cairo_region_translate (ret_clip, -gc->clip_x_origin, -gc->clip_y_origin);
-              cairo_region_intersect (ret_clip, region);
-              cairo_region_translate (ret_clip, gc->clip_x_origin, gc->clip_y_origin);
-            }
-          else
-            {
-              cairo_region_intersect (ret_clip, region);
-            }
-        }
-
-      if (gc_private->values_mask & GDK_GC_SUBWINDOW &&
-          gc_private->values.subwindow_mode == GDK_INCLUDE_INFERIORS)
-        return;
-    }
-
-  if (private->buffered) {
-       D_DEBUG_AT( GDKDFB_DrawClip, "  => returning clip   >> %4d,%4d - %4dx%4d << (%ld boxes)\n",
-                   GDKDFB_RECTANGLE_VALS_FROM_BOX( &ret_clip->extents ), ret_clip->numRects );
-    return;
-  }
-
-  if (GDK_IS_WINDOW (private->wrapper) &&
-      GDK_WINDOW_IS_MAPPED (private->wrapper) &&
-      !GDK_WINDOW_OBJECT (private->wrapper)->input_only)
-    {
-      GList     *cur;
-      cairo_region_t  temp;
-
-      temp.numRects = 1;
-      temp.rects = &temp.extents;
-      temp.size = 1;
-
-      for (cur = GDK_WINDOW_OBJECT (private->wrapper)->children;
-           cur;
-           cur = cur->next)
-        {
-          GdkWindowObject         *cur_private;
-          GdkDrawableImplDirectFB *cur_impl;
-
-          cur_private = GDK_WINDOW_OBJECT (cur->data);
-
-          if (!GDK_WINDOW_IS_MAPPED (cur_private) || cur_private->input_only)
-            continue;
-
-          cur_impl = GDK_DRAWABLE_IMPL_DIRECTFB (cur_private->impl);
-
-          temp.extents.x1 = cur_private->x;
-          temp.extents.y1 = cur_private->y;
-          temp.extents.x2 = cur_private->x + cur_impl->width;
-          temp.extents.y2 = cur_private->y + cur_impl->height;
-
-          D_DEBUG_AT( GDKDFB_DrawClip, "  -> clipping child    [ %4d,%4d - %4dx%4d ]  (%ld boxes)\n",
-                      GDKDFB_RECTANGLE_VALS_FROM_BOX( &temp.extents ), temp.numRects );
-
-          cairo_region_subtract (ret_clip, &temp);
-        }
-    }
-
-  D_DEBUG_AT( GDKDFB_DrawClip, "  => returning clip   >> %4d,%4d - %4dx%4d << (%ld boxes)\n",
-              GDKDFB_RECTANGLE_VALS_FROM_BOX( &ret_clip->extents ), ret_clip->numRects );
-}
-
-/* Drawing
- */
-
-static inline void
-gdk_directfb_set_color (GdkDrawableImplDirectFB *impl,
-                        GdkColor                *color,
-                        guchar                   alpha)
-{
-  if (DFB_PIXELFORMAT_IS_INDEXED (impl->format))
-    {
-      impl->surface->SetColorIndex (impl->surface, color->pixel);
-    }
-  else
-    {
-      impl->surface->SetColor (impl->surface,
-                               color->red   >> 8,
-                               color->green >> 8,
-                               color->blue  >> 8,
-                               alpha);
-    }
-}
-
-static gboolean
-gdk_directfb_setup_for_drawing (GdkDrawableImplDirectFB *impl,
-                                GdkGCDirectFB           *gc_private)
-{
-  DFBSurfaceDrawingFlags flags = DSDRAW_NOFX;
-  GdkColor               color = { 0, 0, 0, 0 };
-  guchar                 alpha = 0xFF;
-
-  if (!impl->surface)
-    return FALSE;
-
-  if (gc_private && gc_private->values_mask & GDK_GC_FOREGROUND)
-    color = gc_private->values.foreground;
-
-  if (gc_private && gc_private->values_mask & GDK_GC_FUNCTION)
-    {
-      switch (gc_private->values.function)
-        {
-        case GDK_COPY:
-          flags = DSDRAW_NOFX;
-          break;
-
-        case GDK_INVERT:
-          color.red = color.green = color.blue = 0xFFFF;
-          alpha = 0x0;
-          flags = DSDRAW_XOR;
-          break;
-
-        case GDK_XOR:
-          alpha = 0x0;
-          flags = DSDRAW_XOR;
-          break;
-
-        case GDK_CLEAR:
-          color.red = color.green = color.blue = 0x0;
-          flags = DSDRAW_NOFX;
-          break;
-
-        case GDK_NOOP:
-          return FALSE;
-
-        case GDK_SET:
-          color.red = color.green = color.blue = 0xFFFF;
-          flags = DSDRAW_NOFX;
-          break;
-
-        default:
-          g_message ("unsupported GC function %d",
-                     gc_private->values.function);
-          flags = DSDRAW_NOFX;
-          break;
-        }
-    }
-
-  gdk_directfb_set_color (impl, &color, alpha);
-
-  impl->surface->SetDrawingFlags (impl->surface, flags);
-
-  return TRUE;
-}
-
-static inline void
-convert_rgba_pixbuf_to_image (guint32 *src,
-                              guint    src_pitch,
-                              guint32 *dest,
-                              guint    dest_pitch,
-                              guint    width,
-                              guint    height)
-{
-  guint i;
-
-  while (height--)
-    {
-      for (i = 0; i < width; i++)
-        {
-          guint32 pixel = GUINT32_FROM_BE (src[i]);
-          dest[i] = (pixel >> 8) | (pixel << 24);
-        }
-
-      src  += src_pitch;
-      dest += dest_pitch;
-    }
-}
-
-static inline void
-convert_rgb_pixbuf_to_image (guchar  *src,
-                             guint    src_pitch,
-                             guint32 *dest,
-                             guint    dest_pitch,
-                             guint    width,
-                             guint    height)
-{
-  guint   i;
-  guchar *s;
-
-  while (height--)
-    {
-      s = src;
-
-      for (i = 0; i < width; i++, s += 3)
-        dest[i] = 0xFF000000 | (s[0] << 16) | (s[1] << 8) | s[2];
-
-      src  += src_pitch;
-      dest += dest_pitch;
-    }
-}
-
-/*
- * Object stuff
- */
-static inline const char *
-drawable_impl_type_name( GObject *object )
-{
-     if (GDK_IS_PIXMAP (object))
-          return "PIXMAP";
-
-     if (GDK_IS_WINDOW (object))
-          return "WINDOW";
-
-     if (GDK_IS_DRAWABLE_IMPL_DIRECTFB (object))
-          return "DRAWABLE";
-
-     return "unknown";
-}
-
-
-static void
-gdk_drawable_impl_directfb_finalize (GObject *object)
-{
-  GdkDrawableImplDirectFB *impl;
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (object);
-
-  D_DEBUG_AT( GDKDFB_Drawable, "%s( %p ) <- %dx%d (%s at %4d,%4d)\n", G_STRFUNC,
-              object, impl->width, impl->height,
-              drawable_impl_type_name( object ),
-              impl->abs_x, impl->abs_y );
-
-  gdk_directfb_set_colormap (GDK_DRAWABLE (object), NULL);
-  if( impl->cairo_surface ) {
-       cairo_surface_finish(impl->cairo_surface);
-  }
-  if( impl->surface )
-       impl->surface->Release (impl->surface);
-  G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static void
-gdk_drawable_impl_directfb_class_init (GdkDrawableImplDirectFBClass *klass)
-{
-  GdkDrawableClass *drawable_class = GDK_DRAWABLE_CLASS (klass);
-  GObjectClass     *object_class   = G_OBJECT_CLASS (klass);
-
-  parent_class = g_type_class_peek_parent (klass);
-
-  object_class->finalize = gdk_drawable_impl_directfb_finalize;
-
-  drawable_class->create_gc      = _gdk_directfb_gc_new;
-
-  drawable_class->ref_cairo_surface = gdk_directfb_ref_cairo_surface;
-  drawable_class->set_colormap   = gdk_directfb_set_colormap;
-  drawable_class->get_colormap   = gdk_directfb_get_colormap;
-
-  drawable_class->get_depth      = gdk_directfb_get_depth;
-  drawable_class->get_visual     = gdk_directfb_get_visual;
-
-  drawable_class->get_size       = gdk_directfb_get_size;
-
-        drawable_class->get_screen = gdk_directfb_get_screen;
-
-
-  real_draw_pixbuf = drawable_class->draw_pixbuf;
-  drawable_class->draw_pixbuf = gdk_directfb_draw_pixbuf;
-
-  /* check for hardware-accelerated alpha-blending */
-  {
-    DFBGraphicsDeviceDescription desc;
-                _gdk_display->directfb->GetDeviceDescription ( _gdk_display->directfb, &desc);
-
-    accelerated_alpha_blending =
-      ((desc.acceleration_mask & DFXL_BLIT) &&
-       (desc.blitting_flags & DSBLIT_BLEND_ALPHACHANNEL));
-  }
-}
-
-GType
-gdk_drawable_impl_directfb_get_type (void)
-{
-  static GType object_type = 0;
-
-  if (!object_type)
-    {
-      const GTypeInfo object_info =
-        {
-          sizeof (GdkDrawableImplDirectFBClass),
-          (GBaseInitFunc) NULL,
-          (GBaseFinalizeFunc) NULL,
-          (GClassInitFunc) gdk_drawable_impl_directfb_class_init,
-          NULL,           /* class_finalize */
-          NULL,           /* class_data */
-          sizeof (GdkDrawableImplDirectFB),
-          0,              /* n_preallocs */
-          (GInstanceInitFunc) NULL,
-        };
-
-      object_type = g_type_register_static (GDK_TYPE_DRAWABLE,
-                                            "GdkDrawableImplDirectFB",
-                                            &object_info, 0);
-    }
-
-  return object_type;
-}
-
-static GdkScreen * gdk_directfb_get_screen (GdkDrawable    *drawable){
-        return gdk_screen_get_default();
-}
-
-static void
-gdk_directfb_cairo_surface_destroy (void *data)
-{
-  GdkDrawableImplDirectFB *impl = data;
-  impl->cairo_surface = NULL;
-}
-
-void
-_gdk_windowing_set_cairo_surface_size (cairo_surface_t *surface,
-                                       int width,
-                                       int height)
-{
-}
-
-cairo_surface_t *
-_gdk_windowing_create_cairo_surface (GdkDrawable *drawable,
-                                     int width,
-                                     int height)
-{
-  GdkDrawableImplDirectFB *impl;
-  IDirectFB *dfb;
-  cairo_surface_t *ret;
-
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
-  dfb = GDK_DISPLAY_DFB (gdk_drawable_get_display (drawable))->directfb;
-
-  ret = cairo_directfb_surface_create (dfb, impl->surface);
-  cairo_surface_set_user_data (ret,
-                               &gdk_directfb_cairo_key, drawable,
-                               gdk_directfb_cairo_surface_destroy);
-
-  return ret;
-}
-
-static cairo_surface_t *
-gdk_directfb_ref_cairo_surface (GdkDrawable *drawable)
-{
-  GdkDrawableImplDirectFB *impl;
-  IDirectFB               *dfb;
-  
-  g_return_val_if_fail (GDK_IS_DRAWABLE (drawable), NULL);
-  g_return_val_if_fail (GDK_IS_DRAWABLE_IMPL_DIRECTFB (drawable), NULL);
-
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
-  dfb = GDK_DISPLAY_DFB(gdk_drawable_get_display(drawable))->directfb;
-  
-  if (!impl->cairo_surface) {
-    IDirectFBSurface *surface;
-    g_assert (impl->surface != NULL);
-#if defined(CAIRO_VERSION) && CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1,5,5)
-    impl->surface->GetSubSurface (impl->surface, NULL, &surface);
-#else
-    surface = impl->surface;
-#endif
-    if (surface) {
-      impl->cairo_surface = cairo_directfb_surface_create (dfb, surface);
-      if (impl->cairo_surface) {
-        cairo_surface_set_user_data (impl->cairo_surface, 
-                                     &gdk_directfb_cairo_key, drawable, 
-                                     gdk_directfb_cairo_surface_destroy);
-      }
-#if defined(CAIRO_VERSION) && CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1,5,5)
-      surface->Release (surface);
-#endif
-    }
-  } else {
-    cairo_surface_reference (impl->cairo_surface);
-  }
-  
-  g_assert (impl->cairo_surface != NULL);
-  return impl->cairo_surface;
-}
diff --git a/gdk/directfb/gdkevents-directfb.c b/gdk/directfb/gdkevents-directfb.c
deleted file mode 100644 (file)
index 39363d3..0000000
+++ /dev/null
@@ -1,963 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkinternals.h"
-
-#include "gdkkeysyms.h"
-
-#include "gdkinput-directfb.h"
-#include <string.h>
-
-#ifndef __GDK_X_H__
-#define __GDK_X_H__
-gboolean gdk_net_wm_supports (GdkAtom property);
-#endif
-
-#define EventBuffer _gdk_display->buffer
-#define DirectFB _gdk_display->directfb
-
-
-/*********************************************
- * Functions for maintaining the event queue *
- *********************************************/
-
-static GdkEvent * gdk_event_translate  (DFBWindowEvent  *dfbevent,
-                                        GdkWindow       *window);
-
-/*
- * Private variable declarations
- */
-static GList *client_filters;  /* Filters for client messages */
-
-
-static void
-fixup_event (GdkEvent *event)
-{
-  if (event->any.window)
-    g_object_ref (event->any.window);
-  if (((event->any.type == GDK_ENTER_NOTIFY) ||
-       (event->any.type == GDK_LEAVE_NOTIFY)) &&
-      (event->crossing.subwindow != NULL))
-    g_object_ref (event->crossing.subwindow);
-  event->any.send_event = FALSE;
-}
-
-static GdkFilterReturn
-apply_filters (GdkWindow      *window,
-               DFBWindowEvent *dfbevent,
-               GList          *filters)
-{
-  GdkFilterReturn result = GDK_FILTER_CONTINUE;
-  GdkEvent *event;
-  GList *node;
-  GList *tmp_list;
-
-  event = gdk_event_new (GDK_NOTHING);
-  if (window != NULL)
-    event->any.window = g_object_ref (window);
-  ((GdkEventPrivate *)event)->flags |= GDK_EVENT_PENDING;
-
-  /* I think GdkFilterFunc semantics require the passed-in event
-   * to already be in the queue. The filter func can generate
-   * more events and append them after it if it likes.
-   */
-  node = _gdk_event_queue_append ((GdkDisplay*)_gdk_display, event);
-  
-  tmp_list = filters;
-  while (tmp_list)
-    {
-      GdkEventFilter *filter = (GdkEventFilter *) tmp_list->data;
-      
-      tmp_list = tmp_list->next;
-      result = filter->function (dfbevent, event, filter->data);
-      if (result != GDK_FILTER_CONTINUE)
-        break;
-    }
-
-  if (result == GDK_FILTER_CONTINUE || result == GDK_FILTER_REMOVE)
-    {
-      _gdk_event_queue_remove_link ((GdkDisplay*)_gdk_display, node);
-      g_list_free_1 (node);
-      gdk_event_free (event);
-    }
-  else /* GDK_FILTER_TRANSLATE */
-    {
-      ((GdkEventPrivate *)event)->flags &= ~GDK_EVENT_PENDING;
-      fixup_event (event);
-    }
-  return result;
-}
-
-static void
-dfb_events_process_window_event (DFBWindowEvent *event)
-{
-  GdkWindow *window;
-
-  /*
-   * Apply global filters
-   *
-   * If result is GDK_FILTER_CONTINUE, we continue as if nothing
-   * happened. If it is GDK_FILTER_REMOVE or GDK_FILTER_TRANSLATE,
-   * we return TRUE and won't dispatch the event.
-   */
-  if (_gdk_default_filters)
-    {
-      switch (apply_filters (NULL, event, _gdk_default_filters))
-        {
-        case GDK_FILTER_REMOVE:
-        case GDK_FILTER_TRANSLATE:
-          return;
-
-        default:
-          break;
-        }
-    }
-
-  window = gdk_directfb_window_id_table_lookup (event->window_id);
-  if (!window)
-    return;
-
-  gdk_event_translate (event, window);
-}
-
-static gboolean
-gdk_event_send_client_message_by_window (GdkEvent *event,
-                                         GdkWindow *window)
-{
-  DFBUserEvent evt;
-
-  g_return_val_if_fail(event != NULL, FALSE);
-  g_return_val_if_fail(GDK_IS_WINDOW(window), FALSE);
-
-  evt.clazz = DFEC_USER;
-  evt.type = GPOINTER_TO_UINT (GDK_ATOM_TO_POINTER (event->client.message_type));
-  evt.data = (void *) event->client.data.l[0];
-
-  _gdk_display->buffer->PostEvent(_gdk_display->buffer, DFB_EVENT (&evt));
-
-  return TRUE;
-}
-
-static void
-dfb_events_dispatch (void)
-{
-  GdkDisplay *display = gdk_display_get_default ();
-  GdkEvent   *event;
-
-  GDK_THREADS_ENTER ();
-
-  while ((event = _gdk_event_unqueue (display)) != NULL)
-    {
-      if (_gdk_event_func)
-        (*_gdk_event_func) (event, _gdk_event_data);
-
-      gdk_event_free (event);
-    }
-
-  GDK_THREADS_LEAVE ();
-}
-
-static gboolean
-dfb_events_io_func (GIOChannel   *channel,
-                    GIOCondition  condition,
-                    gpointer      data)
-{
-  gsize      i;
-  gsize      read;
-  GIOStatus  result;
-  DFBEvent   buf[23];
-  DFBEvent  *event;
-
-  result = g_io_channel_read_chars (channel,
-                                    (gchar *) buf, sizeof (buf), &read, NULL);
-
-  if (result == G_IO_STATUS_ERROR)
-    {
-      g_warning ("%s: GIOError occured", G_STRFUNC);
-      return TRUE;
-    }
-
-  read /= sizeof (DFBEvent);
-
-  for (i = 0, event = buf; i < read; i++, event++)
-    {
-      switch (event->clazz)
-        {
-        case DFEC_WINDOW:
-          /* TODO workaround to prevent two DWET_ENTER in a row from being delivered */
-          if (event->window.type == DWET_ENTER ) {
-            if ( i>0 && buf[i-1].window.type != DWET_ENTER )
-              dfb_events_process_window_event (&event->window);
-          }
-          else
-            dfb_events_process_window_event (&event->window);
-          break;
-
-        case DFEC_USER:
-          {
-            GList *list;
-
-            GDK_NOTE (EVENTS, g_print (" client_message"));
-
-            for (list = client_filters; list; list = list->next)
-              {
-                GdkClientFilter *filter     = list->data;
-                DFBUserEvent    *user_event = (DFBUserEvent *) event;
-                GdkAtom          type;
-
-                type = GDK_POINTER_TO_ATOM (GUINT_TO_POINTER (user_event->type));
-
-                if (filter->type == type)
-                  {
-                    if (filter->function (user_event,
-                                          NULL,
-                                          filter->data) != GDK_FILTER_CONTINUE)
-                      break;
-                  }
-              }
-          }
-          break;
-
-        default:
-          break;
-        }
-    }
-
-  EventBuffer->Reset (EventBuffer);
-
-  dfb_events_dispatch ();
-
-  return TRUE;
-}
-
-void
-_gdk_events_init (void)
-{
-  GIOChannel *channel;
-  GSource    *source;
-  DFBResult   ret;
-  gint        fd;
-
-  ret = DirectFB->CreateEventBuffer (DirectFB, &EventBuffer);
-  if (ret)
-    {
-      DirectFBError ("_gdk_events_init: "
-                     "IDirectFB::CreateEventBuffer() failed", ret);
-      return;
-    }
-
-  ret = EventBuffer->CreateFileDescriptor (EventBuffer, &fd);
-  if (ret)
-    {
-      DirectFBError ("_gdk_events_init: "
-                     "IDirectFBEventBuffer::CreateFileDescriptor() failed",
-                     ret);
-      return;
-    }
-
-  channel = g_io_channel_unix_new (fd);
-
-  g_io_channel_set_encoding (channel, NULL, NULL);
-  g_io_channel_set_buffered (channel, FALSE);
-
-  source = g_io_create_watch (channel, G_IO_IN);
-
-  g_source_set_priority (source, G_PRIORITY_DEFAULT);
-  g_source_set_can_recurse (source, TRUE);
-  g_source_set_callback (source, (GSourceFunc) dfb_events_io_func, NULL, NULL);
-
-  g_source_attach (source, NULL);
-  g_source_unref (source);
-}
-
-gboolean
-gdk_events_pending (void)
-{
-  GdkDisplay *display = gdk_display_get_default ();
-
-  return _gdk_event_queue_find_first (display) ? TRUE : FALSE;
-}
-
-void
-_gdk_events_queue (GdkDisplay *display)
-{
-}
-
-void
-gdk_flush (void)
-{
-gdk_display_flush ( GDK_DISPLAY_OBJECT(_gdk_display));
-}
-
-/* Sends a ClientMessage to all toplevel client windows */
-gboolean
-gdk_event_send_client_message_for_display (GdkDisplay *display,
-                                           GdkEvent   *event,
-                                           guint32     xid)
-{
-  GdkWindow *win = NULL;
-  gboolean ret = TRUE;
-
-  g_return_val_if_fail(event != NULL, FALSE);
-
-  win = gdk_window_lookup_for_display (display, (GdkNativeWindow) xid);
-
-  g_return_val_if_fail(win != NULL, FALSE);
-
-  if ((GDK_WINDOW_OBJECT(win)->window_type != GDK_WINDOW_CHILD) &&
-      (g_object_get_data (G_OBJECT (win), "gdk-window-child-handler")))
-    {
-      /* Managed window, check children */
-      GList *ltmp = NULL;
-      for (ltmp = GDK_WINDOW_OBJECT(win)->children; ltmp; ltmp = ltmp->next)
-       {
-         ret &= gdk_event_send_client_message_by_window (event,
-                                                         GDK_WINDOW(ltmp->data));
-       }
-    }
-  else
-    {
-      ret &= gdk_event_send_client_message_by_window (event, win);
-    }
-
-  return ret;
-}
-
-/*****/
-
-guint32
-gdk_directfb_get_time (void)
-{
-  GTimeVal tv;
-
-  g_get_current_time (&tv);
-
-  return (guint32) tv.tv_sec * 1000 + tv.tv_usec / 1000;
-}
-
-void
-gdk_directfb_event_windows_add (GdkWindow *window)
-{
-  GdkWindowImplDirectFB *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  if (!impl->window)
-    return;
-
-  if (EventBuffer)
-    impl->window->AttachEventBuffer (impl->window, EventBuffer);
-  else
-    impl->window->CreateEventBuffer (impl->window, &EventBuffer);
-}
-
-void
-gdk_directfb_event_windows_remove (GdkWindow *window)
-{
-  GdkWindowImplDirectFB *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  if (!impl->window)
-    return;
-
-  if (EventBuffer)
-    impl->window->DetachEventBuffer (impl->window, EventBuffer);
-/* FIXME: should we warn if (! EventBuffer) ? */
-}
-
-GdkWindow *
-gdk_directfb_child_at (GdkWindow *window,
-                       gint      *winx,
-                       gint      *winy)
-{
-  GdkWindowObject *private;
-  GList           *list;
-
-  g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
-
-  private = GDK_WINDOW_OBJECT (window);
-  for (list = private->children; list; list = list->next)
-    {
-      GdkWindowObject *win = list->data;
-
-      if (GDK_WINDOW_IS_MAPPED (win) &&
-          *winx >= win->x  &&
-          *winx <  win->x + GDK_DRAWABLE_IMPL_DIRECTFB (win->impl)->width  &&
-          *winy >= win->y  &&
-          *winy <  win->y + GDK_DRAWABLE_IMPL_DIRECTFB (win->impl)->height)
-        {
-          *winx -= win->x;
-          *winy -= win->y;
-
-          return gdk_directfb_child_at (GDK_WINDOW (win), winx, winy );
-        }
-    }
-
-  return window;
-}
-
-static GdkEvent *
-gdk_event_translate (DFBWindowEvent *dfbevent,
-                     GdkWindow      *window)
-{
-  GdkWindowObject *private;
-  GdkDisplay      *display;
-  GdkEvent        *event    = NULL;
-
-  g_return_val_if_fail (dfbevent != NULL, NULL);
-  g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
-
-  private = GDK_WINDOW_OBJECT (window);
-
-  g_object_ref (G_OBJECT (window));
-
-  /*
-   * Apply per-window filters
-   *
-   * If result is GDK_FILTER_CONTINUE, we continue as if nothing
-   * happened. If it is GDK_FILTER_REMOVE or GDK_FILTER_TRANSLATE,
-   * we return TRUE and won't dispatch the event.
-   */
-  if (private->filters)
-    {
-      switch (apply_filters (window, dfbevent, private->filters))
-        {
-        case GDK_FILTER_REMOVE:
-        case GDK_FILTER_TRANSLATE:
-          g_object_unref (G_OBJECT (window));
-          return NULL;
-
-        default:
-          break;
-        }
-    }
-
-  display = gdk_drawable_get_display (GDK_DRAWABLE (window));
-
-  switch (dfbevent->type)
-    {
-    case DWET_BUTTONDOWN:
-    case DWET_BUTTONUP:
-      {
-        static gboolean  click_grab = FALSE;
-        GdkWindow       *child;
-        gint             wx, wy;
-        guint            mask;
-        guint            button;
-
-        _gdk_directfb_mouse_x = wx = dfbevent->cx;
-        _gdk_directfb_mouse_y = wy = dfbevent->cy;
-
-        switch (dfbevent->button)
-          {
-          case DIBI_LEFT:
-            button = 1;
-            mask   = GDK_BUTTON1_MASK;
-            break;
-          case DIBI_MIDDLE:
-            button = 2;
-            mask   = GDK_BUTTON2_MASK;
-            break;
-          case DIBI_RIGHT:
-            button = 3;
-            mask   = GDK_BUTTON3_MASK;
-            break;
-          default:
-            button = dfbevent->button + 1;
-            mask   = 0;
-            break;
-          }
-
-        child = gdk_directfb_child_at (_gdk_parent_root, &wx, &wy);
-
-        if (_gdk_directfb_pointer_grab_window &&
-            (_gdk_directfb_pointer_grab_events & (dfbevent->type ==
-                                                  DWET_BUTTONDOWN ?
-                                                  GDK_BUTTON_PRESS_MASK :
-                                                  GDK_BUTTON_RELEASE_MASK)) &&
-            (_gdk_directfb_pointer_grab_owner_events == FALSE ||
-             child == _gdk_parent_root) )
-          {
-            GdkDrawableImplDirectFB *impl;
-
-            child = _gdk_directfb_pointer_grab_window;
-            impl  = GDK_DRAWABLE_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (child)->impl);
-
-            dfbevent->x = dfbevent->cx - impl->abs_x;
-            dfbevent->y = dfbevent->cy - impl->abs_y;
-          }
-        else if (!_gdk_directfb_pointer_grab_window ||
-                 (_gdk_directfb_pointer_grab_owner_events == TRUE))
-          {
-            dfbevent->x = wx;
-            dfbevent->y = wy;
-          }
-        else
-          {
-            child = NULL;
-          }
-
-        if (dfbevent->type == DWET_BUTTONDOWN)
-          _gdk_directfb_modifiers |= mask;
-        else
-          _gdk_directfb_modifiers &= ~mask;
-
-        if (child)
-          {
-            event =
-              gdk_directfb_event_make (child,
-                                       dfbevent->type == DWET_BUTTONDOWN ?
-                                       GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE);
-
-            event->button.x_root = _gdk_directfb_mouse_x;
-            event->button.y_root = _gdk_directfb_mouse_y;
-
-            event->button.x = dfbevent->x;
-            event->button.y = dfbevent->y;
-
-            event->button.state  = _gdk_directfb_modifiers;
-            event->button.button = button;
-            event->button.device = display->core_pointer;
-
-            GDK_NOTE (EVENTS,
-                      g_message ("button: %d at %d,%d %s with state 0x%08x",
-                                 event->button.button,
-                                 (int)event->button.x, (int)event->button.y,
-                                 dfbevent->type == DWET_BUTTONDOWN ?
-                                 "pressed" : "released",
-                                 _gdk_directfb_modifiers));
-
-            if (dfbevent->type == DWET_BUTTONDOWN)
-              _gdk_event_button_generate (display, event);
-          }
-
-        /* Handle implicit button grabs: */
-        if (dfbevent->type == DWET_BUTTONDOWN  &&  !click_grab  &&  child)
-          {
-            if (gdk_directfb_pointer_grab (child, FALSE,
-                                           gdk_window_get_events (child),
-                                           NULL, NULL,
-                                           GDK_CURRENT_TIME,
-                                           TRUE) == GDK_GRAB_SUCCESS)
-              click_grab = TRUE;
-          }
-        else if (dfbevent->type == DWET_BUTTONUP &&
-                 !(_gdk_directfb_modifiers & (GDK_BUTTON1_MASK |
-                                              GDK_BUTTON2_MASK |
-                                              GDK_BUTTON3_MASK)) && click_grab)
-          {
-            gdk_directfb_pointer_ungrab (GDK_CURRENT_TIME, TRUE);
-            click_grab = FALSE;
-          }
-      }
-      break;
-
-    case DWET_MOTION:
-      {
-        GdkWindow *event_win=NULL;
-        GdkWindow *child;
-
-        _gdk_directfb_mouse_x = dfbevent->cx;
-        _gdk_directfb_mouse_y = dfbevent->cy;
-
-       //child = gdk_directfb_child_at (window, &dfbevent->x, &dfbevent->y);
-    /* Go all the way to root to catch popup menus */
-    int wx=_gdk_directfb_mouse_x;
-    int wy=_gdk_directfb_mouse_y;
-       child = gdk_directfb_child_at (_gdk_parent_root, &wx, &wy);
-
-    /* first let's see if any cossing event has to be send */
-    gdk_directfb_window_send_crossing_events (NULL, child, GDK_CROSSING_NORMAL);
-
-    /* then dispatch the motion event to the window the cursor it's inside */
-       event_win = gdk_directfb_pointer_event_window (child, GDK_MOTION_NOTIFY);
-
-
-       if (event_win)
-         {
-
-           if (event_win == _gdk_directfb_pointer_grab_window) {
-               GdkDrawableImplDirectFB *impl;
-
-               child = _gdk_directfb_pointer_grab_window;
-               impl = GDK_DRAWABLE_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (child)->impl);
-
-               dfbevent->x = _gdk_directfb_mouse_x - impl->abs_x;
-               dfbevent->y = _gdk_directfb_mouse_y - impl->abs_y;
-             }
-
-           event = gdk_directfb_event_make (child, GDK_MOTION_NOTIFY);
-
-           event->motion.x_root = _gdk_directfb_mouse_x;
-           event->motion.y_root = _gdk_directfb_mouse_y;
-
-           //event->motion.x = dfbevent->x;
-           //event->motion.y = dfbevent->y;
-           event->motion.x = wx;
-           event->motion.y = wy;
-
-           event->motion.state   = _gdk_directfb_modifiers;
-           event->motion.is_hint = FALSE;
-           event->motion.device  = display->core_pointer;
-
-           if (GDK_WINDOW_OBJECT (event_win)->event_mask &
-               GDK_POINTER_MOTION_HINT_MASK)
-             {
-               while (EventBuffer->PeekEvent (EventBuffer,
-                                              DFB_EVENT (dfbevent)) == DFB_OK
-                      && dfbevent->type == DWET_MOTION)
-                 {
-                   EventBuffer->GetEvent (EventBuffer, DFB_EVENT (dfbevent));
-                   event->motion.is_hint = TRUE;
-                 }
-             }
-         }
-          /* make sure crossing events go to the event window found */
-/*        GdkWindow *ev_win = ( event_win == NULL ) ? gdk_window_at_pointer (NULL,NULL) :event_win;
-            gdk_directfb_window_send_crossing_events (NULL,ev_win,GDK_CROSSING_NORMAL);
-*/
-      }
-      break;
-
-    case DWET_GOTFOCUS:
-      gdk_directfb_change_focus (window);
-
-      break;
-
-    case DWET_LOSTFOCUS:
-      gdk_directfb_change_focus (_gdk_parent_root);
-
-      break;
-
-    case DWET_POSITION:
-      {
-        GdkWindow *event_win;
-
-        private->x = dfbevent->x;
-        private->y = dfbevent->y;
-
-        event_win = gdk_directfb_other_event_window (window, GDK_CONFIGURE);
-
-        if (event_win)
-          {
-            event = gdk_directfb_event_make (event_win, GDK_CONFIGURE);
-            event->configure.x = dfbevent->x;
-            event->configure.y = dfbevent->y;
-            event->configure.width =
-              GDK_DRAWABLE_IMPL_DIRECTFB (private->impl)->width;
-            event->configure.height =
-              GDK_DRAWABLE_IMPL_DIRECTFB (private->impl)->height;
-          }
-
-        _gdk_directfb_calc_abs (window);
-      }
-      break;
-
-    case DWET_POSITION_SIZE:
-      private->x = dfbevent->x;
-      private->y = dfbevent->y;
-      /* fallthru */
-
-    case DWET_SIZE:
-      {
-        GdkDrawableImplDirectFB *impl;
-        GdkWindow               *event_win;
-        GList                   *list;
-
-        impl = GDK_DRAWABLE_IMPL_DIRECTFB (private->impl);
-
-        event_win = gdk_directfb_other_event_window (window, GDK_CONFIGURE);
-
-        if (event_win)
-          {
-            event = gdk_directfb_event_make (event_win, GDK_CONFIGURE);
-            event->configure.x      = private->x;
-            event->configure.y      = private->y;
-            event->configure.width  = dfbevent->w;
-            event->configure.height = dfbevent->h;
-          }
-
-        impl->width  = dfbevent->w;
-        impl->height = dfbevent->h;
-
-        for (list = private->children; list; list = list->next)
-          {
-            GdkWindowObject         *win;
-            GdkDrawableImplDirectFB *impl;
-
-            win  = GDK_WINDOW_OBJECT (list->data);
-            impl = GDK_DRAWABLE_IMPL_DIRECTFB (win->impl);
-
-            _gdk_directfb_move_resize_child (GDK_WINDOW (win),
-                                             win->x, win->y,
-                                             impl->width, impl->height);
-          }
-
-        _gdk_directfb_calc_abs (window);
-
-        gdk_window_clear (window);
-        gdk_window_invalidate_rect (window, NULL, TRUE);
-      }
-      break;
-
-    case DWET_KEYDOWN:
-    case DWET_KEYUP:
-      {
-
-        GdkEventType type = (dfbevent->type == DWET_KEYUP ?
-                             GDK_KEY_RELEASE : GDK_KEY_PRESS);
-        GdkWindow *event_win =
-          gdk_directfb_keyboard_event_window (gdk_directfb_window_find_focus (),
-                                              type);
-        if (event_win)
-          {
-            event = gdk_directfb_event_make (event_win, type);
-            gdk_directfb_translate_key_event (dfbevent, &event->key);
-          }
-      }
-      break;
-
-    case DWET_LEAVE:
-      _gdk_directfb_mouse_x = dfbevent->cx;
-      _gdk_directfb_mouse_y = dfbevent->cy;
-
-      gdk_directfb_window_send_crossing_events (NULL, _gdk_parent_root,
-                                                GDK_CROSSING_NORMAL);
-
-      if (gdk_directfb_apply_focus_opacity)
-        {
-          if (GDK_WINDOW_IS_MAPPED (window))
-            GDK_WINDOW_IMPL_DIRECTFB (private->impl)->window->SetOpacity
-              (GDK_WINDOW_IMPL_DIRECTFB (private->impl)->window,
-               (GDK_WINDOW_IMPL_DIRECTFB (private->impl)->opacity >> 1) +
-               (GDK_WINDOW_IMPL_DIRECTFB (private->impl)->opacity >> 2));
-        }
-      break;
-
-    case DWET_ENTER:
-      {
-        GdkWindow *child;
-
-        _gdk_directfb_mouse_x = dfbevent->cx;
-        _gdk_directfb_mouse_y = dfbevent->cy;
-
-        child = gdk_directfb_child_at (window, &dfbevent->x, &dfbevent->y);
-
-        /* this makes sure pointer is set correctly when it previously left
-         * a window being not standard shaped
-         */
-        gdk_window_set_cursor (window, NULL);
-        gdk_directfb_window_send_crossing_events (NULL, child,
-                                                  GDK_CROSSING_NORMAL);
-
-        if (gdk_directfb_apply_focus_opacity)
-          {
-            GDK_WINDOW_IMPL_DIRECTFB (private->impl)->window->SetOpacity
-              (GDK_WINDOW_IMPL_DIRECTFB (private->impl)->window,
-               GDK_WINDOW_IMPL_DIRECTFB (private->impl)->opacity);
-          }
-      }
-      break;
-
-    case DWET_CLOSE:
-      {
-        GdkWindow *event_win;
-
-        event_win = gdk_directfb_other_event_window (window, GDK_DELETE);
-
-        if (event_win)
-          event = gdk_directfb_event_make (event_win, GDK_DELETE);
-      }
-      break;
-
-    case DWET_DESTROYED:
-      {
-        GdkWindow *event_win;
-
-        event_win = gdk_directfb_other_event_window (window, GDK_DESTROY);
-
-        if (event_win)
-          event = gdk_directfb_event_make (event_win, GDK_DESTROY);
-
-       gdk_window_destroy_notify (window);
-      }
-      break;
-
-    case DWET_WHEEL:
-      {
-        GdkWindow *event_win;
-
-        _gdk_directfb_mouse_x = dfbevent->cx;
-        _gdk_directfb_mouse_y = dfbevent->cy;
-
-        if (_gdk_directfb_pointer_grab_window)
-          {
-            GdkDrawableImplDirectFB *impl;
-
-            event_win = _gdk_directfb_pointer_grab_window;
-            impl =
-              GDK_DRAWABLE_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (event_win)->impl);
-
-            dfbevent->x = dfbevent->cx - impl->abs_x;
-            dfbevent->y = dfbevent->cy - impl->abs_y;
-          }
-        else
-          {
-            event_win = gdk_directfb_child_at (window,
-                                               &dfbevent->x, &dfbevent->y);
-          }
-
-        if (event_win)
-          {
-            event = gdk_directfb_event_make (event_win, GDK_SCROLL);
-
-            event->scroll.direction = (dfbevent->step < 0 ?
-                                       GDK_SCROLL_DOWN : GDK_SCROLL_UP);
-
-            event->scroll.x_root = _gdk_directfb_mouse_x;
-            event->scroll.y_root = _gdk_directfb_mouse_y;
-            event->scroll.x      = dfbevent->x;
-            event->scroll.y      = dfbevent->y;
-            event->scroll.state  = _gdk_directfb_modifiers;
-            event->scroll.device = display->core_pointer;
-          }
-      }
-      break;
-
-    default:
-      g_message ("unhandled DirectFB windowing event 0x%08x", dfbevent->type);
-    }
-
-  g_object_unref (G_OBJECT (window));
-
-  return event;
-}
-
-gboolean
-gdk_screen_get_setting (GdkScreen   *screen,
-                        const gchar *name,
-                        GValue      *value)
-{
-  return FALSE;
-}
-
-void
-gdk_display_add_client_message_filter (GdkDisplay   *display,
-                                       GdkAtom       message_type,
-                                       GdkFilterFunc func,
-                                       gpointer      data)
-{
-  /* XXX: display should be used */
-  GdkClientFilter *filter = g_new (GdkClientFilter, 1);
-
-  filter->type = message_type;
-  filter->function = func;
-  filter->data = data;
-  client_filters = g_list_append (client_filters, filter);
-}
-
-
-void
-gdk_add_client_message_filter (GdkAtom       message_type,
-                               GdkFilterFunc func,
-                               gpointer      data)
-{
-  gdk_display_add_client_message_filter (gdk_display_get_default (),
-                                         message_type, func, data);
-}
-
-void
-gdk_screen_broadcast_client_message (GdkScreen *screen,
-                                    GdkEvent  *sev)
-{
-  GdkWindow *root_window;
-  GdkWindowObject *private;
-  GList *top_level = NULL;
-
-  g_return_if_fail (GDK_IS_SCREEN (screen));
-  g_return_if_fail(sev != NULL);
-
-  root_window = gdk_screen_get_root_window (screen);
-
-  g_return_if_fail(GDK_IS_WINDOW(root_window));
-
-  private = GDK_WINDOW_OBJECT (root_window);
-
-  for (top_level = private->children; top_level; top_level = top_level->next)
-    {
-      gdk_event_send_client_message_for_display (gdk_drawable_get_display(GDK_DRAWABLE(root_window)),
-                                                sev,
-                                                (guint32)(GDK_WINDOW_DFB_ID(GDK_WINDOW(top_level->data))));
-   }
-}
-
-
-/**
- * gdk_net_wm_supports:
- * @property: a property atom.
- *
- * This function is specific to the X11 backend of GDK, and indicates
- * whether the window manager for the default screen supports a certain
- * hint from the Extended Window Manager Hints Specification. See
- * gdk_x11_screen_supports_net_wm_hint() for complete details.
- *
- * Return value: %TRUE if the window manager supports @property
- **/
-
-
-gboolean
-gdk_net_wm_supports (GdkAtom property)
-{
-   return FALSE;
-}
-
-void
-_gdk_windowing_event_data_copy (const GdkEvent *src,
-                                GdkEvent       *dst)
-{
-}
-
-void
-_gdk_windowing_event_data_free (GdkEvent *event)
-{
-}
diff --git a/gdk/directfb/gdkgeometry-directfb.c b/gdk/directfb/gdkgeometry-directfb.c
deleted file mode 100644 (file)
index 85a39a2..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"        /* For gdk_rectangle_intersect */
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkinternals.h"
-
-
-void
-_gdk_directfb_window_get_offsets (GdkWindow *window,
-                                  gint      *x_offset,
-                                  gint      *y_offset)
-{
-  if (x_offset)
-    *x_offset = 0;
-  if (y_offset)
-    *y_offset = 0;
-}
-
-gboolean
-_gdk_windowing_window_queue_antiexpose (GdkWindow *window,
-                                        cairo_region_t *area)
-{
-  return FALSE;
-}
-
-/**
- * gdk_window_scroll:
- * @window: a #GdkWindow
- * @dx: Amount to scroll in the X direction
- * @dy: Amount to scroll in the Y direction
- *
- * Scroll the contents of its window, both pixels and children, by
- * the given amount. Portions of the window that the scroll operation
- * brings in from offscreen areas are invalidated.
- **/
-void
-_gdk_directfb_window_scroll (GdkWindow *window,
-                             gint       dx,
-                             gint       dy)
-{
-  GdkWindowObject         *private;
-  GdkDrawableImplDirectFB *impl;
-  cairo_region_t               *invalidate_region = NULL;
-  GList                   *list;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (private->impl);
-
-  if (dx == 0 && dy == 0)
-    return;
-
-  /* Move the current invalid region */
-  if (private->update_area)
-    cairo_region_translate (private->update_area, dx, dy);
-
-  if (GDK_WINDOW_IS_MAPPED (window))
-    {
-      GdkRectangle  clip_rect = {  0,  0, impl->width, impl->height };
-      GdkRectangle  rect      = { dx, dy, impl->width, impl->height };
-
-      invalidate_region = cairo_region_create_rectangle (&clip_rect);
-
-      if (gdk_rectangle_intersect (&rect, &clip_rect, &rect) &&
-          (!private->update_area ||
-           !cairo_region_contains_rectangle (private->update_area, &rect)))
-        {
-          cairo_region_t *region;
-
-          region = cairo_region_create_rectangle (&rect);
-          cairo_region_subtract (invalidate_region, region);
-          cairo_region_destroy (region);
-
-          if (impl->surface)
-            {
-              DFBRegion update = { rect.x, rect.y,
-                                   rect.x + rect.width  - 1,
-                                   rect.y + rect.height - 1 };
-
-              impl->surface->SetClip (impl->surface, &update);
-              impl->surface->Blit (impl->surface, impl->surface, NULL, dx, dy);
-              impl->surface->SetClip (impl->surface, NULL);
-              impl->surface->Flip(impl->surface,&update,0);
-            }
-        }
-    }
-
-  for (list = private->children; list; list = list->next)
-    {
-      GdkWindowObject         *obj      = GDK_WINDOW_OBJECT (list->data);
-      GdkDrawableImplDirectFB *obj_impl = GDK_DRAWABLE_IMPL_DIRECTFB (obj->impl);
-
-      _gdk_directfb_move_resize_child (list->data,
-                                       obj->x + dx,
-                                       obj->y + dy,
-                                       obj_impl->width,
-                                       obj_impl->height);
-    }
-
-  _gdk_directfb_calc_abs (window);
-
-  if (invalidate_region)
-    {
-      gdk_window_invalidate_region (window, invalidate_region, TRUE);
-      cairo_region_destroy (invalidate_region);
-    }
-}
-
-/**
- * gdk_window_move_region:
- * @window: a #GdkWindow
- * @region: The #cairo_region_t to move
- * @dx: Amount to move in the X direction
- * @dy: Amount to move in the Y direction
- * 
- * Move the part of @window indicated by @region by @dy pixels in the Y 
- * direction and @dx pixels in the X direction. The portions of @region 
- * that not covered by the new position of @region are invalidated.
- * 
- * Child windows are not moved.
- * 
- * Since: 2.8
- **/
-void
-_gdk_directfb_window_move_region (GdkWindow       *window,
-                                  const cairo_region_t *region,
-                                  gint             dx,
-                                  gint             dy)
-{
-  GdkWindowObject         *private;
-  GdkDrawableImplDirectFB *impl;
-  cairo_region_t *window_clip;
-  cairo_region_t *src_region;
-  cairo_region_t *brought_in;
-  cairo_region_t *dest_region;
-  cairo_region_t *moving_invalid_region;
-  GdkRectangle dest_extents;
-  
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (region != NULL);
-  
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-  
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (private->impl);  
-
-  if (dx == 0 && dy == 0)
-    return;
-
-  GdkRectangle  clip_rect = {  0,  0, impl->width, impl->height };
-  window_clip = cairo_region_create_rectangle (&clip_rect);
-
-  /* compute source regions */
-  src_region = cairo_region_copy (region);
-  brought_in = cairo_region_copy (region);
-  cairo_region_intersect (src_region, window_clip);
-
-  cairo_region_subtract (brought_in, src_region);
-  cairo_region_translate (brought_in, dx, dy);
-
-  /* compute destination regions */
-  dest_region = cairo_region_copy (src_region);
-  cairo_region_translate (dest_region, dx, dy);
-  cairo_region_intersect (dest_region, window_clip);
-  cairo_region_get_extents (dest_region, &dest_extents);
-
-  cairo_region_destroy (window_clip);
-
-  /* calculating moving part of current invalid area */
-  moving_invalid_region = NULL;
-  if (private->update_area)
-    {
-      moving_invalid_region = cairo_region_copy (private->update_area);
-      cairo_region_intersect (moving_invalid_region, src_region);
-      cairo_region_translate (moving_invalid_region, dx, dy);
-    }
-  
-  /* invalidate all of the src region */
-  gdk_window_invalidate_region (window, src_region, FALSE);
-
-  /* un-invalidate destination region */
-  if (private->update_area)
-    cairo_region_subtract (private->update_area, dest_region);
-  
-  /* invalidate moving parts of existing update area */
-  if (moving_invalid_region)
-    {
-      gdk_window_invalidate_region (window, moving_invalid_region, FALSE);
-      cairo_region_destroy (moving_invalid_region);
-    }
-
-  /* invalidate area brought in from off-screen */
-  gdk_window_invalidate_region (window, brought_in, FALSE);
-  cairo_region_destroy (brought_in);
-
-  /* Actually do the moving */
-       if (impl->surface)
-       {
-       DFBRectangle source = { dest_extents.x - dx, 
-                                           dest_extents.y - dy,
-                             dest_extents.width,
-                             dest_extents.height};
-       DFBRegion destination = { dest_extents.x, 
-                                                dest_extents.y,
-                                dest_extents.x+dest_extents.width-1,
-                                dest_extents.y+dest_extents.height-1};
-
-              impl->surface->SetClip (impl->surface, &destination);
-              impl->surface->Blit (impl->surface, impl->surface,&source,dx,dy);
-              impl->surface->SetClip (impl->surface, NULL);
-              impl->surface->Flip(impl->surface,&destination,0);
-       }
-  cairo_region_destroy (src_region);
-  cairo_region_destroy (dest_region);
-}
diff --git a/gdk/directfb/gdkglobals-directfb.c b/gdk/directfb/gdkglobals-directfb.c
deleted file mode 100644 (file)
index 3e48084..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-
-GdkDisplayDFB *_gdk_display = NULL;
-GdkScreen          * _gdk_screen                              = NULL;
-
-gboolean              gdk_directfb_apply_focus_opacity        = FALSE;
-gboolean              gdk_directfb_enable_color_keying        = FALSE;
-DFBColor              gdk_directfb_bg_color                   = { 0, 0, 0, 0 };
-DFBColor              gdk_directfb_bg_color_key               = { 0, 0, 0, 0 };
-gboolean              gdk_directfb_monochrome_fonts           = FALSE;
-
-GdkWindow          * _gdk_directfb_pointer_grab_window        = NULL;
-GdkWindow          * _gdk_directfb_keyboard_grab_window       = NULL;
-GdkWindow          * _gdk_directfb_pointer_grab_confine       = NULL;
-gboolean             _gdk_directfb_pointer_grab_owner_events  = FALSE;
-gboolean             _gdk_directfb_keyboard_grab_owner_events = FALSE;
-GdkEventMask         _gdk_directfb_pointer_grab_events        = 0;
-GdkEventMask         _gdk_directfb_keyboard_grab_events       = 0;
-GdkCursor          * _gdk_directfb_pointer_grab_cursor        = NULL;
-
-GdkAtom              _gdk_selection_property                  = 0;
diff --git a/gdk/directfb/gdkim-directfb.c b/gdk/directfb/gdkim-directfb.c
deleted file mode 100644 (file)
index 53a8eea..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <locale.h>
-
-#include "gdkdirectfb.h"
-
-/*
- *--------------------------------------------------------------
- * gdk_set_locale
- *
- * Arguments:
- *
- * Results:
- *
- * Side effects:
- *
- *--------------------------------------------------------------
- */
-
-gchar*
-gdk_set_locale (void)
-{
-  if (!setlocale (LC_ALL,""))
-    g_warning ("locale not supported by C library");
-
-  return setlocale (LC_ALL, NULL);
-}
diff --git a/gdk/directfb/gdkinput-directfb.c b/gdk/directfb/gdkinput-directfb.c
deleted file mode 100644 (file)
index 1af5682..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * Copyright (C) 1999 Tor Lillqvist
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-#include "gdkinput-directfb.h"
-
-#include "gdkinput.h"
-#include "gdkkeysyms.h"
-
-
-static GdkDeviceAxis gdk_input_core_axes[] =
-{
-  { GDK_AXIS_X, 0, 0 },
-  { GDK_AXIS_Y, 0, 0 }
-};
-
-
-GdkDevice     * _gdk_core_pointer       = NULL;
-GList         * _gdk_input_devices      = NULL;
-gboolean        _gdk_input_ignore_core  = FALSE;
-
-int             _gdk_directfb_mouse_x   = 0;
-int             _gdk_directfb_mouse_y   = 0;
-
-
-void
-_gdk_init_input_core (void)
-{
- GdkDisplay *display = GDK_DISPLAY_OBJECT(_gdk_display);
-  _gdk_core_pointer = g_object_new (GDK_TYPE_DEVICE, NULL);
-
-  _gdk_core_pointer->name       = "Core Pointer";
-  _gdk_core_pointer->source     = GDK_SOURCE_MOUSE;
-  _gdk_core_pointer->mode       = GDK_MODE_SCREEN;
-  _gdk_core_pointer->has_cursor = TRUE;
-  _gdk_core_pointer->num_axes   = 2;
-  _gdk_core_pointer->axes       = gdk_input_core_axes;
-  _gdk_core_pointer->num_keys   = 0;
-  _gdk_core_pointer->keys       = NULL;
-  display->core_pointer         = _gdk_core_pointer;
-}
-
-static void
-gdk_device_finalize (GObject *object)
-{
-  g_error ("A GdkDevice object was finalized. This should not happen");
-}
-
-static void
-gdk_device_class_init (GObjectClass *class)
-{
-  class->finalize = gdk_device_finalize;
-}
-
-GType
-gdk_device_get_type (void)
-{
-  static GType object_type = 0;
-
-  if (!object_type)
-    {
-      const GTypeInfo object_info =
-      {
-        sizeof (GdkDeviceClass),
-        (GBaseInitFunc) NULL,
-        (GBaseFinalizeFunc) NULL,
-        (GClassInitFunc) gdk_device_class_init,
-        NULL,           /* class_finalize */
-        NULL,           /* class_data */
-        sizeof (GdkDevice),
-        0,              /* n_preallocs */
-        (GInstanceInitFunc) NULL,
-      };
-
-      object_type = g_type_register_static (G_TYPE_OBJECT,
-                                            "GdkDevice",
-                                            &object_info, 0);
-    }
-
-  return object_type;
-}
-
-
-void
-_gdk_input_init (void)
-{
-  _gdk_init_input_core ();
-  _gdk_input_devices = g_list_append (NULL, _gdk_core_pointer);
-  _gdk_input_ignore_core = FALSE;
-}
-
-void
-_gdk_input_exit (void)
-{
-  GList     *tmp_list;
-  GdkDevice *gdkdev;
-
-  for (tmp_list = _gdk_input_devices; tmp_list; tmp_list = tmp_list->next)
-    {
-      gdkdev = (GdkDevice *)(tmp_list->data);
-      if (!GDK_IS_CORE (gdkdev))
-       {
-         gdk_device_set_mode ((GdkDevice *)gdkdev, GDK_MODE_DISABLED);
-
-         g_free (gdkdev->name);
-         g_free (gdkdev->axes);
-         g_free (gdkdev->keys);
-         g_free (gdkdev);
-       }
-    }
-
-  g_list_free (_gdk_input_devices);
-}
-
-/**
- * gdk_device_get_axis:
- * @device: a #GdkDevice
- * @axes: pointer to an array of axes
- * @use: the use to look for
- * @value: location to store the found value.
- *
- * Interprets an array of double as axis values for a given device,
- * and locates the value in the array for a given axis use.
- *
- * Return value: %TRUE if the given axis use was found, otherwise %FALSE
- **/
-gboolean
-gdk_device_get_axis (GdkDevice  *device,
-                     gdouble    *axes,
-                     GdkAxisUse  use,
-                     gdouble    *value)
-{
-  gint i;
-  g_return_val_if_fail (device != NULL, FALSE);
-
-  if (axes == NULL)
-    return FALSE;
-
-  for (i = 0; i < device->num_axes; i++)
-    if (device->axes[i].use == use)
-      {
-       if (value)
-         *value = axes[i];
-       return TRUE;
-      }
-
-  return FALSE;
-}
-
-void
-gdk_device_set_key (GdkDevice       *device,
-                    guint            index,
-                    guint            keyval,
-                    GdkModifierType  modifiers)
-{
-  g_return_if_fail (device != NULL);
-  g_return_if_fail (index < device->num_keys);
-
-  device->keys[index].keyval    = keyval;
-  device->keys[index].modifiers = modifiers;
-}
-
-void
-gdk_device_set_axis_use (GdkDevice   *device,
-                         guint        index,
-                         GdkAxisUse   use)
-{
-  g_return_if_fail (device != NULL);
-  g_return_if_fail (index < device->num_axes);
-
-  device->axes[index].use = use;
-
-  switch (use)
-    {
-    case GDK_AXIS_X:
-    case GDK_AXIS_Y:
-      device->axes[index].min =  0.0;
-      device->axes[index].max =  0.0;
-      break;
-    case GDK_AXIS_XTILT:
-    case GDK_AXIS_YTILT:
-      device->axes[index].min = -1.0;
-      device->axes[index].max =  1.0;
-      break;
-    default:
-      device->axes[index].min =  0.0;
-      device->axes[index].max =  1.0;
-      break;
-    }
-}
-
-gboolean
-gdk_device_set_mode (GdkDevice    *device,
-                     GdkInputMode  mode)
-{
-  g_message ("unimplemented %s", G_STRFUNC);
-
-  return FALSE;
-}
-
-gboolean
-gdk_device_get_history  (GdkDevice      *device,
-                         GdkWindow      *window,
-                         guint32         start,
-                         guint32         stop,
-                         GdkTimeCoord ***events,
-                         gint           *n_events)
-{
-  g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
-  g_return_val_if_fail (events != NULL, FALSE);
-  g_return_val_if_fail (n_events != NULL, FALSE);
-
-  *n_events = 0;
-  *events = NULL;
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return FALSE;
-
-  if (GDK_IS_CORE (device))
-    return FALSE;
-  else
-    return FALSE;
-  //TODODO_gdk_device_get_history (device, window, start, stop, events, n_events);
-}
-
-void
-gdk_device_free_history (GdkTimeCoord **events,
-                         gint           n_events)
-{
-  gint i;
-
-  for (i = 0; i < n_events; i++)
-    g_free (events[i]);
-
-  g_free (events);
-}
-
-void
-gdk_device_get_state (GdkDevice       *device,
-                      GdkWindow       *window,
-                      gdouble         *axes,
-                      GdkModifierType *mask)
-{
-  g_return_if_fail (device != NULL);
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (mask)
-    *mask = _gdk_directfb_modifiers;
-}
-
-void
-gdk_directfb_mouse_get_info (gint            *x,
-                             gint            *y,
-                             GdkModifierType *mask)
-{
-  if (x)
-    *x = _gdk_directfb_mouse_x;
-
-  if (y)
-    *y = _gdk_directfb_mouse_y;
-
-  if (mask)
-    *mask = _gdk_directfb_modifiers;
-}
-
-void
-gdk_input_set_extension_events (GdkWindow        *window,
-                                gint              mask,
-                                GdkExtensionMode  mode)
-{
-  g_message ("unimplemented %s", G_STRFUNC);
-}
-
-GList *
-gdk_devices_list (void)
-{
-  return _gdk_input_devices;
-}
-
-
-GList *
-gdk_display_list_devices (GdkDisplay *dpy)
-{
-  return _gdk_input_devices;
-}
-
-void
-gdk_device_set_source (GdkDevice      *device,
-                       GdkInputSource  source)
-{
-  g_return_if_fail (device != NULL);
-  device->source = source;
-}
diff --git a/gdk/directfb/gdkinput-directfb.h b/gdk/directfb/gdkinput-directfb.h
deleted file mode 100644 (file)
index 6fd2ae1..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002       convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#ifndef __GDK_INPUT_DIRECTFB_H__
-#define __GDK_INPUT_DIRECTFB_H__
-
-extern GdkModifierType _gdk_directfb_modifiers;
-extern int _gdk_directfb_mouse_x, _gdk_directfb_mouse_y;
-
-typedef struct _GdkAxisInfo      GdkAxisInfo;
-
-/* information about a device axis */
-struct _GdkAxisInfo
-{
-  /* reported x resolution */
-  gint xresolution;
-
-  /* reported x minimum/maximum values */
-  gint xmin_value, xmax_value;
-
-  /* calibrated resolution (for aspect ration) - only relative values
-     between axes used */
-  gint resolution;
-
-  /* calibrated minimum/maximum values */
-  gint min_value, max_value;
-};
-
-#define GDK_INPUT_NUM_EVENTC 6
-
-struct _GdkDeviceClass
-{
-  GObjectClass parent_class;
-};
-
-struct _GdkInputWindow
-{
-  /* gdk window */
-  GdkWindow *window;
-
-  /* Extension mode (GDK_EXTENSION_EVENTS_ALL/CURSOR) */
-  GdkExtensionMode mode;
-
-  /* position relative to root window */
-  gint root_x;
-  gint root_y;
-
-  /* rectangles relative to window of windows obscuring this one */
-  GdkRectangle *obscuring;
-  gint num_obscuring;
-
-  /* Is there a pointer grab for this window ? */
-  gint grabbed;
-};
-
-/* Global data */
-
-#define GDK_IS_CORE(d) (((GdkDevice *)(d)) == _gdk_core_pointer)
-
-extern GList *_gdk_input_devices;
-extern GList *_gdk_input_windows;
-
-extern gint   _gdk_input_ignore_core;
-
-/* Function declarations */
-
-/* The following functions are provided by each implementation
- */
-gint             _gdk_input_window_none_event(GdkEvent          *event,
-                                              gchar             *msg);
-void             _gdk_input_configure_event  (GdkEventConfigure *event,
-                                              GdkWindow         *window);
-void             _gdk_input_enter_event      (GdkEventCrossing  *event,
-                                              GdkWindow         *window);
-gint             _gdk_input_other_event      (GdkEvent          *event,
-                                              gchar             *msg,
-                                              GdkWindow         *window);
-
-/* These should be in gdkinternals.h */
-
-GdkInputWindow  * gdk_input_window_find      (GdkWindow         *window);
-
-void              gdk_input_window_destroy   (GdkWindow         *window);
-
-gint             _gdk_input_enable_window    (GdkWindow         *window,
-                                              GdkDevice         *gdkdev);
-gint             _gdk_input_disable_window   (GdkWindow         *window,
-                                              GdkDevice         *gdkdev);
-gint             _gdk_input_grab_pointer     (GdkWindow         *window,
-                                              gint               owner_events,
-                                              GdkEventMask       event_mask,
-                                              GdkWindow         *confine_to,
-                                              guint32            time);
-void             _gdk_input_ungrab_pointer   (guint32            time);
-gboolean         _gdk_device_get_history     (GdkDevice         *device,
-                                              GdkWindow         *window,
-                                              guint32            start,
-                                              guint32            stop,
-                                              GdkTimeCoord    ***events,
-                                              gint              *n_events);
-
-gint             gdk_input_common_init        (gint              include_core);
-gint             gdk_input_common_other_event (GdkEvent         *event,
-                                               gchar            *msg,
-                                               GdkInputWindow   *input_window,
-                                               GdkWindow        *window);
-
-void         _gdk_directfb_keyboard_init      (void);
-void         _gdk_directfb_keyboard_exit      (void);
-
-void         gdk_directfb_translate_key_event (DFBWindowEvent   *dfb_event,
-                                               GdkEventKey      *event);
-
-#endif /* __GDK_INPUT_DIRECTFB_H__ */
diff --git a/gdk/directfb/gdkkeys-directfb.c b/gdk/directfb/gdkkeys-directfb.c
deleted file mode 100644 (file)
index d33c21f..0000000
+++ /dev/null
@@ -1,2032 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 2000 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002       convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkkeysyms.h"
-
-
-static struct gdk_key *gdk_keys_by_name = NULL;
-
-GdkModifierType  _gdk_directfb_modifiers = 0;
-
-static guint     *directfb_keymap        = NULL;
-static gint       directfb_min_keycode   = 0;
-static gint       directfb_max_keycode   = 0;
-
-
-/* 
- *  This array needs to be sorted by key values. It can be generated
- *  from gdkkeysyms.h using a few lines of Perl. This is a bit more
- *  complex as one would expect since GDK defines multiple names for a
- *  few key values. We throw the most akward of them away (GDK_Ln and
- *  GDK_Rn).  This code seems to do the trick:
- *
- *      while (<>) {
- *          if (/^\#define GDK\_(\w+) 0x([0-9|a-f|A-F|]+)/) {
- *             push @{ $names{hex $2} }, $1;
- *          }
- *      }
- *      foreach $value (sort { $a <=> $b } keys %names) {
- *          for (@{ $names{$value} } ) {
- *             next if (/^[R|L]\d+/);
- *              print "  { GDK_$_, \"$_\" },\n";
- *          }
- *      }
- */
-static const struct gdk_key
-{
-  guint        keyval;
-  const gchar *name;
-} gdk_keys_by_keyval[] = {
-  { GDK_space, "space" },
-  { GDK_exclam, "exclam" },
-  { GDK_quotedbl, "quotedbl" },
-  { GDK_numbersign, "numbersign" },
-  { GDK_dollar, "dollar" },
-  { GDK_percent, "percent" },
-  { GDK_ampersand, "ampersand" },
-  { GDK_apostrophe, "apostrophe" },
-  { GDK_quoteright, "quoteright" },
-  { GDK_parenleft, "parenleft" },
-  { GDK_parenright, "parenright" },
-  { GDK_asterisk, "asterisk" },
-  { GDK_plus, "plus" },
-  { GDK_comma, "comma" },
-  { GDK_minus, "minus" },
-  { GDK_period, "period" },
-  { GDK_slash, "slash" },
-  { GDK_0, "0" },
-  { GDK_1, "1" },
-  { GDK_2, "2" },
-  { GDK_3, "3" },
-  { GDK_4, "4" },
-  { GDK_5, "5" },
-  { GDK_6, "6" },
-  { GDK_7, "7" },
-  { GDK_8, "8" },
-  { GDK_9, "9" },
-  { GDK_colon, "colon" },
-  { GDK_semicolon, "semicolon" },
-  { GDK_less, "less" },
-  { GDK_equal, "equal" },
-  { GDK_greater, "greater" },
-  { GDK_question, "question" },
-  { GDK_at, "at" },
-  { GDK_A, "A" },
-  { GDK_B, "B" },
-  { GDK_C, "C" },
-  { GDK_D, "D" },
-  { GDK_E, "E" },
-  { GDK_F, "F" },
-  { GDK_G, "G" },
-  { GDK_H, "H" },
-  { GDK_I, "I" },
-  { GDK_J, "J" },
-  { GDK_K, "K" },
-  { GDK_L, "L" },
-  { GDK_M, "M" },
-  { GDK_N, "N" },
-  { GDK_O, "O" },
-  { GDK_P, "P" },
-  { GDK_Q, "Q" },
-  { GDK_R, "R" },
-  { GDK_S, "S" },
-  { GDK_T, "T" },
-  { GDK_U, "U" },
-  { GDK_V, "V" },
-  { GDK_W, "W" },
-  { GDK_X, "X" },
-  { GDK_Y, "Y" },
-  { GDK_Z, "Z" },
-  { GDK_bracketleft, "bracketleft" },
-  { GDK_backslash, "backslash" },
-  { GDK_bracketright, "bracketright" },
-  { GDK_asciicircum, "asciicircum" },
-  { GDK_underscore, "underscore" },
-  { GDK_grave, "grave" },
-  { GDK_quoteleft, "quoteleft" },
-  { GDK_a, "a" },
-  { GDK_b, "b" },
-  { GDK_c, "c" },
-  { GDK_d, "d" },
-  { GDK_e, "e" },
-  { GDK_f, "f" },
-  { GDK_g, "g" },
-  { GDK_h, "h" },
-  { GDK_i, "i" },
-  { GDK_j, "j" },
-  { GDK_k, "k" },
-  { GDK_l, "l" },
-  { GDK_m, "m" },
-  { GDK_n, "n" },
-  { GDK_o, "o" },
-  { GDK_p, "p" },
-  { GDK_q, "q" },
-  { GDK_r, "r" },
-  { GDK_s, "s" },
-  { GDK_t, "t" },
-  { GDK_u, "u" },
-  { GDK_v, "v" },
-  { GDK_w, "w" },
-  { GDK_x, "x" },
-  { GDK_y, "y" },
-  { GDK_z, "z" },
-  { GDK_braceleft, "braceleft" },
-  { GDK_bar, "bar" },
-  { GDK_braceright, "braceright" },
-  { GDK_asciitilde, "asciitilde" },
-  { GDK_nobreakspace, "nobreakspace" },
-  { GDK_exclamdown, "exclamdown" },
-  { GDK_cent, "cent" },
-  { GDK_sterling, "sterling" },
-  { GDK_currency, "currency" },
-  { GDK_yen, "yen" },
-  { GDK_brokenbar, "brokenbar" },
-  { GDK_section, "section" },
-  { GDK_diaeresis, "diaeresis" },
-  { GDK_copyright, "copyright" },
-  { GDK_ordfeminine, "ordfeminine" },
-  { GDK_guillemotleft, "guillemotleft" },
-  { GDK_notsign, "notsign" },
-  { GDK_hyphen, "hyphen" },
-  { GDK_registered, "registered" },
-  { GDK_macron, "macron" },
-  { GDK_degree, "degree" },
-  { GDK_plusminus, "plusminus" },
-  { GDK_twosuperior, "twosuperior" },
-  { GDK_threesuperior, "threesuperior" },
-  { GDK_acute, "acute" },
-  { GDK_mu, "mu" },
-  { GDK_paragraph, "paragraph" },
-  { GDK_periodcentered, "periodcentered" },
-  { GDK_cedilla, "cedilla" },
-  { GDK_onesuperior, "onesuperior" },
-  { GDK_masculine, "masculine" },
-  { GDK_guillemotright, "guillemotright" },
-  { GDK_onequarter, "onequarter" },
-  { GDK_onehalf, "onehalf" },
-  { GDK_threequarters, "threequarters" },
-  { GDK_questiondown, "questiondown" },
-  { GDK_Agrave, "Agrave" },
-  { GDK_Aacute, "Aacute" },
-  { GDK_Acircumflex, "Acircumflex" },
-  { GDK_Atilde, "Atilde" },
-  { GDK_Adiaeresis, "Adiaeresis" },
-  { GDK_Aring, "Aring" },
-  { GDK_AE, "AE" },
-  { GDK_Ccedilla, "Ccedilla" },
-  { GDK_Egrave, "Egrave" },
-  { GDK_Eacute, "Eacute" },
-  { GDK_Ecircumflex, "Ecircumflex" },
-  { GDK_Ediaeresis, "Ediaeresis" },
-  { GDK_Igrave, "Igrave" },
-  { GDK_Iacute, "Iacute" },
-  { GDK_Icircumflex, "Icircumflex" },
-  { GDK_Idiaeresis, "Idiaeresis" },
-  { GDK_ETH, "ETH" },
-  { GDK_Eth, "Eth" },
-  { GDK_Ntilde, "Ntilde" },
-  { GDK_Ograve, "Ograve" },
-  { GDK_Oacute, "Oacute" },
-  { GDK_Ocircumflex, "Ocircumflex" },
-  { GDK_Otilde, "Otilde" },
-  { GDK_Odiaeresis, "Odiaeresis" },
-  { GDK_multiply, "multiply" },
-  { GDK_Ooblique, "Ooblique" },
-  { GDK_Ugrave, "Ugrave" },
-  { GDK_Uacute, "Uacute" },
-  { GDK_Ucircumflex, "Ucircumflex" },
-  { GDK_Udiaeresis, "Udiaeresis" },
-  { GDK_Yacute, "Yacute" },
-  { GDK_THORN, "THORN" },
-  { GDK_Thorn, "Thorn" },
-  { GDK_ssharp, "ssharp" },
-  { GDK_agrave, "agrave" },
-  { GDK_aacute, "aacute" },
-  { GDK_acircumflex, "acircumflex" },
-  { GDK_atilde, "atilde" },
-  { GDK_adiaeresis, "adiaeresis" },
-  { GDK_aring, "aring" },
-  { GDK_ae, "ae" },
-  { GDK_ccedilla, "ccedilla" },
-  { GDK_egrave, "egrave" },
-  { GDK_eacute, "eacute" },
-  { GDK_ecircumflex, "ecircumflex" },
-  { GDK_ediaeresis, "ediaeresis" },
-  { GDK_igrave, "igrave" },
-  { GDK_iacute, "iacute" },
-  { GDK_icircumflex, "icircumflex" },
-  { GDK_idiaeresis, "idiaeresis" },
-  { GDK_eth, "eth" },
-  { GDK_ntilde, "ntilde" },
-  { GDK_ograve, "ograve" },
-  { GDK_oacute, "oacute" },
-  { GDK_ocircumflex, "ocircumflex" },
-  { GDK_otilde, "otilde" },
-  { GDK_odiaeresis, "odiaeresis" },
-  { GDK_division, "division" },
-  { GDK_oslash, "oslash" },
-  { GDK_ugrave, "ugrave" },
-  { GDK_uacute, "uacute" },
-  { GDK_ucircumflex, "ucircumflex" },
-  { GDK_udiaeresis, "udiaeresis" },
-  { GDK_yacute, "yacute" },
-  { GDK_thorn, "thorn" },
-  { GDK_ydiaeresis, "ydiaeresis" },
-  { GDK_Aogonek, "Aogonek" },
-  { GDK_breve, "breve" },
-  { GDK_Lstroke, "Lstroke" },
-  { GDK_Lcaron, "Lcaron" },
-  { GDK_Sacute, "Sacute" },
-  { GDK_Scaron, "Scaron" },
-  { GDK_Scedilla, "Scedilla" },
-  { GDK_Tcaron, "Tcaron" },
-  { GDK_Zacute, "Zacute" },
-  { GDK_Zcaron, "Zcaron" },
-  { GDK_Zabovedot, "Zabovedot" },
-  { GDK_aogonek, "aogonek" },
-  { GDK_ogonek, "ogonek" },
-  { GDK_lstroke, "lstroke" },
-  { GDK_lcaron, "lcaron" },
-  { GDK_sacute, "sacute" },
-  { GDK_caron, "caron" },
-  { GDK_scaron, "scaron" },
-  { GDK_scedilla, "scedilla" },
-  { GDK_tcaron, "tcaron" },
-  { GDK_zacute, "zacute" },
-  { GDK_doubleacute, "doubleacute" },
-  { GDK_zcaron, "zcaron" },
-  { GDK_zabovedot, "zabovedot" },
-  { GDK_Racute, "Racute" },
-  { GDK_Abreve, "Abreve" },
-  { GDK_Lacute, "Lacute" },
-  { GDK_Cacute, "Cacute" },
-  { GDK_Ccaron, "Ccaron" },
-  { GDK_Eogonek, "Eogonek" },
-  { GDK_Ecaron, "Ecaron" },
-  { GDK_Dcaron, "Dcaron" },
-  { GDK_Dstroke, "Dstroke" },
-  { GDK_Nacute, "Nacute" },
-  { GDK_Ncaron, "Ncaron" },
-  { GDK_Odoubleacute, "Odoubleacute" },
-  { GDK_Rcaron, "Rcaron" },
-  { GDK_Uring, "Uring" },
-  { GDK_Udoubleacute, "Udoubleacute" },
-  { GDK_Tcedilla, "Tcedilla" },
-  { GDK_racute, "racute" },
-  { GDK_abreve, "abreve" },
-  { GDK_lacute, "lacute" },
-  { GDK_cacute, "cacute" },
-  { GDK_ccaron, "ccaron" },
-  { GDK_eogonek, "eogonek" },
-  { GDK_ecaron, "ecaron" },
-  { GDK_dcaron, "dcaron" },
-  { GDK_dstroke, "dstroke" },
-  { GDK_nacute, "nacute" },
-  { GDK_ncaron, "ncaron" },
-  { GDK_odoubleacute, "odoubleacute" },
-  { GDK_rcaron, "rcaron" },
-  { GDK_uring, "uring" },
-  { GDK_udoubleacute, "udoubleacute" },
-  { GDK_tcedilla, "tcedilla" },
-  { GDK_abovedot, "abovedot" },
-  { GDK_Hstroke, "Hstroke" },
-  { GDK_Hcircumflex, "Hcircumflex" },
-  { GDK_Iabovedot, "Iabovedot" },
-  { GDK_Gbreve, "Gbreve" },
-  { GDK_Jcircumflex, "Jcircumflex" },
-  { GDK_hstroke, "hstroke" },
-  { GDK_hcircumflex, "hcircumflex" },
-  { GDK_idotless, "idotless" },
-  { GDK_gbreve, "gbreve" },
-  { GDK_jcircumflex, "jcircumflex" },
-  { GDK_Cabovedot, "Cabovedot" },
-  { GDK_Ccircumflex, "Ccircumflex" },
-  { GDK_Gabovedot, "Gabovedot" },
-  { GDK_Gcircumflex, "Gcircumflex" },
-  { GDK_Ubreve, "Ubreve" },
-  { GDK_Scircumflex, "Scircumflex" },
-  { GDK_cabovedot, "cabovedot" },
-  { GDK_ccircumflex, "ccircumflex" },
-  { GDK_gabovedot, "gabovedot" },
-  { GDK_gcircumflex, "gcircumflex" },
-  { GDK_ubreve, "ubreve" },
-  { GDK_scircumflex, "scircumflex" },
-  { GDK_kra, "kra" },
-  { GDK_kappa, "kappa" },
-  { GDK_Rcedilla, "Rcedilla" },
-  { GDK_Itilde, "Itilde" },
-  { GDK_Lcedilla, "Lcedilla" },
-  { GDK_Emacron, "Emacron" },
-  { GDK_Gcedilla, "Gcedilla" },
-  { GDK_Tslash, "Tslash" },
-  { GDK_rcedilla, "rcedilla" },
-  { GDK_itilde, "itilde" },
-  { GDK_lcedilla, "lcedilla" },
-  { GDK_emacron, "emacron" },
-  { GDK_gcedilla, "gcedilla" },
-  { GDK_tslash, "tslash" },
-  { GDK_ENG, "ENG" },
-  { GDK_eng, "eng" },
-  { GDK_Amacron, "Amacron" },
-  { GDK_Iogonek, "Iogonek" },
-  { GDK_Eabovedot, "Eabovedot" },
-  { GDK_Imacron, "Imacron" },
-  { GDK_Ncedilla, "Ncedilla" },
-  { GDK_Omacron, "Omacron" },
-  { GDK_Kcedilla, "Kcedilla" },
-  { GDK_Uogonek, "Uogonek" },
-  { GDK_Utilde, "Utilde" },
-  { GDK_Umacron, "Umacron" },
-  { GDK_amacron, "amacron" },
-  { GDK_iogonek, "iogonek" },
-  { GDK_eabovedot, "eabovedot" },
-  { GDK_imacron, "imacron" },
-  { GDK_ncedilla, "ncedilla" },
-  { GDK_omacron, "omacron" },
-  { GDK_kcedilla, "kcedilla" },
-  { GDK_uogonek, "uogonek" },
-  { GDK_utilde, "utilde" },
-  { GDK_umacron, "umacron" },
-  { GDK_overline, "overline" },
-  { GDK_kana_fullstop, "kana_fullstop" },
-  { GDK_kana_openingbracket, "kana_openingbracket" },
-  { GDK_kana_closingbracket, "kana_closingbracket" },
-  { GDK_kana_comma, "kana_comma" },
-  { GDK_kana_conjunctive, "kana_conjunctive" },
-  { GDK_kana_middledot, "kana_middledot" },
-  { GDK_kana_WO, "kana_WO" },
-  { GDK_kana_a, "kana_a" },
-  { GDK_kana_i, "kana_i" },
-  { GDK_kana_u, "kana_u" },
-  { GDK_kana_e, "kana_e" },
-  { GDK_kana_o, "kana_o" },
-  { GDK_kana_ya, "kana_ya" },
-  { GDK_kana_yu, "kana_yu" },
-  { GDK_kana_yo, "kana_yo" },
-  { GDK_kana_tsu, "kana_tsu" },
-  { GDK_kana_tu, "kana_tu" },
-  { GDK_prolongedsound, "prolongedsound" },
-  { GDK_kana_A, "kana_A" },
-  { GDK_kana_I, "kana_I" },
-  { GDK_kana_U, "kana_U" },
-  { GDK_kana_E, "kana_E" },
-  { GDK_kana_O, "kana_O" },
-  { GDK_kana_KA, "kana_KA" },
-  { GDK_kana_KI, "kana_KI" },
-  { GDK_kana_KU, "kana_KU" },
-  { GDK_kana_KE, "kana_KE" },
-  { GDK_kana_KO, "kana_KO" },
-  { GDK_kana_SA, "kana_SA" },
-  { GDK_kana_SHI, "kana_SHI" },
-  { GDK_kana_SU, "kana_SU" },
-  { GDK_kana_SE, "kana_SE" },
-  { GDK_kana_SO, "kana_SO" },
-  { GDK_kana_TA, "kana_TA" },
-  { GDK_kana_CHI, "kana_CHI" },
-  { GDK_kana_TI, "kana_TI" },
-  { GDK_kana_TSU, "kana_TSU" },
-  { GDK_kana_TU, "kana_TU" },
-  { GDK_kana_TE, "kana_TE" },
-  { GDK_kana_TO, "kana_TO" },
-  { GDK_kana_NA, "kana_NA" },
-  { GDK_kana_NI, "kana_NI" },
-  { GDK_kana_NU, "kana_NU" },
-  { GDK_kana_NE, "kana_NE" },
-  { GDK_kana_NO, "kana_NO" },
-  { GDK_kana_HA, "kana_HA" },
-  { GDK_kana_HI, "kana_HI" },
-  { GDK_kana_FU, "kana_FU" },
-  { GDK_kana_HU, "kana_HU" },
-  { GDK_kana_HE, "kana_HE" },
-  { GDK_kana_HO, "kana_HO" },
-  { GDK_kana_MA, "kana_MA" },
-  { GDK_kana_MI, "kana_MI" },
-  { GDK_kana_MU, "kana_MU" },
-  { GDK_kana_ME, "kana_ME" },
-  { GDK_kana_MO, "kana_MO" },
-  { GDK_kana_YA, "kana_YA" },
-  { GDK_kana_YU, "kana_YU" },
-  { GDK_kana_YO, "kana_YO" },
-  { GDK_kana_RA, "kana_RA" },
-  { GDK_kana_RI, "kana_RI" },
-  { GDK_kana_RU, "kana_RU" },
-  { GDK_kana_RE, "kana_RE" },
-  { GDK_kana_RO, "kana_RO" },
-  { GDK_kana_WA, "kana_WA" },
-  { GDK_kana_N, "kana_N" },
-  { GDK_voicedsound, "voicedsound" },
-  { GDK_semivoicedsound, "semivoicedsound" },
-  { GDK_Arabic_comma, "Arabic_comma" },
-  { GDK_Arabic_semicolon, "Arabic_semicolon" },
-  { GDK_Arabic_question_mark, "Arabic_question_mark" },
-  { GDK_Arabic_hamza, "Arabic_hamza" },
-  { GDK_Arabic_maddaonalef, "Arabic_maddaonalef" },
-  { GDK_Arabic_hamzaonalef, "Arabic_hamzaonalef" },
-  { GDK_Arabic_hamzaonwaw, "Arabic_hamzaonwaw" },
-  { GDK_Arabic_hamzaunderalef, "Arabic_hamzaunderalef" },
-  { GDK_Arabic_hamzaonyeh, "Arabic_hamzaonyeh" },
-  { GDK_Arabic_alef, "Arabic_alef" },
-  { GDK_Arabic_beh, "Arabic_beh" },
-  { GDK_Arabic_tehmarbuta, "Arabic_tehmarbuta" },
-  { GDK_Arabic_teh, "Arabic_teh" },
-  { GDK_Arabic_theh, "Arabic_theh" },
-  { GDK_Arabic_jeem, "Arabic_jeem" },
-  { GDK_Arabic_hah, "Arabic_hah" },
-  { GDK_Arabic_khah, "Arabic_khah" },
-  { GDK_Arabic_dal, "Arabic_dal" },
-  { GDK_Arabic_thal, "Arabic_thal" },
-  { GDK_Arabic_ra, "Arabic_ra" },
-  { GDK_Arabic_zain, "Arabic_zain" },
-  { GDK_Arabic_seen, "Arabic_seen" },
-  { GDK_Arabic_sheen, "Arabic_sheen" },
-  { GDK_Arabic_sad, "Arabic_sad" },
-  { GDK_Arabic_dad, "Arabic_dad" },
-  { GDK_Arabic_tah, "Arabic_tah" },
-  { GDK_Arabic_zah, "Arabic_zah" },
-  { GDK_Arabic_ain, "Arabic_ain" },
-  { GDK_Arabic_ghain, "Arabic_ghain" },
-  { GDK_Arabic_tatweel, "Arabic_tatweel" },
-  { GDK_Arabic_feh, "Arabic_feh" },
-  { GDK_Arabic_qaf, "Arabic_qaf" },
-  { GDK_Arabic_kaf, "Arabic_kaf" },
-  { GDK_Arabic_lam, "Arabic_lam" },
-  { GDK_Arabic_meem, "Arabic_meem" },
-  { GDK_Arabic_noon, "Arabic_noon" },
-  { GDK_Arabic_ha, "Arabic_ha" },
-  { GDK_Arabic_heh, "Arabic_heh" },
-  { GDK_Arabic_waw, "Arabic_waw" },
-  { GDK_Arabic_alefmaksura, "Arabic_alefmaksura" },
-  { GDK_Arabic_yeh, "Arabic_yeh" },
-  { GDK_Arabic_fathatan, "Arabic_fathatan" },
-  { GDK_Arabic_dammatan, "Arabic_dammatan" },
-  { GDK_Arabic_kasratan, "Arabic_kasratan" },
-  { GDK_Arabic_fatha, "Arabic_fatha" },
-  { GDK_Arabic_damma, "Arabic_damma" },
-  { GDK_Arabic_kasra, "Arabic_kasra" },
-  { GDK_Arabic_shadda, "Arabic_shadda" },
-  { GDK_Arabic_sukun, "Arabic_sukun" },
-  { GDK_Serbian_dje, "Serbian_dje" },
-  { GDK_Macedonia_gje, "Macedonia_gje" },
-  { GDK_Cyrillic_io, "Cyrillic_io" },
-  { GDK_Ukrainian_ie, "Ukrainian_ie" },
-  { GDK_Ukranian_je, "Ukranian_je" },
-  { GDK_Macedonia_dse, "Macedonia_dse" },
-  { GDK_Ukrainian_i, "Ukrainian_i" },
-  { GDK_Ukranian_i, "Ukranian_i" },
-  { GDK_Ukrainian_yi, "Ukrainian_yi" },
-  { GDK_Ukranian_yi, "Ukranian_yi" },
-  { GDK_Cyrillic_je, "Cyrillic_je" },
-  { GDK_Serbian_je, "Serbian_je" },
-  { GDK_Cyrillic_lje, "Cyrillic_lje" },
-  { GDK_Serbian_lje, "Serbian_lje" },
-  { GDK_Cyrillic_nje, "Cyrillic_nje" },
-  { GDK_Serbian_nje, "Serbian_nje" },
-  { GDK_Serbian_tshe, "Serbian_tshe" },
-  { GDK_Macedonia_kje, "Macedonia_kje" },
-  { GDK_Byelorussian_shortu, "Byelorussian_shortu" },
-  { GDK_Cyrillic_dzhe, "Cyrillic_dzhe" },
-  { GDK_Serbian_dze, "Serbian_dze" },
-  { GDK_numerosign, "numerosign" },
-  { GDK_Serbian_DJE, "Serbian_DJE" },
-  { GDK_Macedonia_GJE, "Macedonia_GJE" },
-  { GDK_Cyrillic_IO, "Cyrillic_IO" },
-  { GDK_Ukrainian_IE, "Ukrainian_IE" },
-  { GDK_Ukranian_JE, "Ukranian_JE" },
-  { GDK_Macedonia_DSE, "Macedonia_DSE" },
-  { GDK_Ukrainian_I, "Ukrainian_I" },
-  { GDK_Ukranian_I, "Ukranian_I" },
-  { GDK_Ukrainian_YI, "Ukrainian_YI" },
-  { GDK_Ukranian_YI, "Ukranian_YI" },
-  { GDK_Cyrillic_JE, "Cyrillic_JE" },
-  { GDK_Serbian_JE, "Serbian_JE" },
-  { GDK_Cyrillic_LJE, "Cyrillic_LJE" },
-  { GDK_Serbian_LJE, "Serbian_LJE" },
-  { GDK_Cyrillic_NJE, "Cyrillic_NJE" },
-  { GDK_Serbian_NJE, "Serbian_NJE" },
-  { GDK_Serbian_TSHE, "Serbian_TSHE" },
-  { GDK_Macedonia_KJE, "Macedonia_KJE" },
-  { GDK_Byelorussian_SHORTU, "Byelorussian_SHORTU" },
-  { GDK_Cyrillic_DZHE, "Cyrillic_DZHE" },
-  { GDK_Serbian_DZE, "Serbian_DZE" },
-  { GDK_Cyrillic_yu, "Cyrillic_yu" },
-  { GDK_Cyrillic_a, "Cyrillic_a" },
-  { GDK_Cyrillic_be, "Cyrillic_be" },
-  { GDK_Cyrillic_tse, "Cyrillic_tse" },
-  { GDK_Cyrillic_de, "Cyrillic_de" },
-  { GDK_Cyrillic_ie, "Cyrillic_ie" },
-  { GDK_Cyrillic_ef, "Cyrillic_ef" },
-  { GDK_Cyrillic_ghe, "Cyrillic_ghe" },
-  { GDK_Cyrillic_ha, "Cyrillic_ha" },
-  { GDK_Cyrillic_i, "Cyrillic_i" },
-  { GDK_Cyrillic_shorti, "Cyrillic_shorti" },
-  { GDK_Cyrillic_ka, "Cyrillic_ka" },
-  { GDK_Cyrillic_el, "Cyrillic_el" },
-  { GDK_Cyrillic_em, "Cyrillic_em" },
-  { GDK_Cyrillic_en, "Cyrillic_en" },
-  { GDK_Cyrillic_o, "Cyrillic_o" },
-  { GDK_Cyrillic_pe, "Cyrillic_pe" },
-  { GDK_Cyrillic_ya, "Cyrillic_ya" },
-  { GDK_Cyrillic_er, "Cyrillic_er" },
-  { GDK_Cyrillic_es, "Cyrillic_es" },
-  { GDK_Cyrillic_te, "Cyrillic_te" },
-  { GDK_Cyrillic_u, "Cyrillic_u" },
-  { GDK_Cyrillic_zhe, "Cyrillic_zhe" },
-  { GDK_Cyrillic_ve, "Cyrillic_ve" },
-  { GDK_Cyrillic_softsign, "Cyrillic_softsign" },
-  { GDK_Cyrillic_yeru, "Cyrillic_yeru" },
-  { GDK_Cyrillic_ze, "Cyrillic_ze" },
-  { GDK_Cyrillic_sha, "Cyrillic_sha" },
-  { GDK_Cyrillic_e, "Cyrillic_e" },
-  { GDK_Cyrillic_shcha, "Cyrillic_shcha" },
-  { GDK_Cyrillic_che, "Cyrillic_che" },
-  { GDK_Cyrillic_hardsign, "Cyrillic_hardsign" },
-  { GDK_Cyrillic_YU, "Cyrillic_YU" },
-  { GDK_Cyrillic_A, "Cyrillic_A" },
-  { GDK_Cyrillic_BE, "Cyrillic_BE" },
-  { GDK_Cyrillic_TSE, "Cyrillic_TSE" },
-  { GDK_Cyrillic_DE, "Cyrillic_DE" },
-  { GDK_Cyrillic_IE, "Cyrillic_IE" },
-  { GDK_Cyrillic_EF, "Cyrillic_EF" },
-  { GDK_Cyrillic_GHE, "Cyrillic_GHE" },
-  { GDK_Cyrillic_HA, "Cyrillic_HA" },
-  { GDK_Cyrillic_I, "Cyrillic_I" },
-  { GDK_Cyrillic_SHORTI, "Cyrillic_SHORTI" },
-  { GDK_Cyrillic_KA, "Cyrillic_KA" },
-  { GDK_Cyrillic_EL, "Cyrillic_EL" },
-  { GDK_Cyrillic_EM, "Cyrillic_EM" },
-  { GDK_Cyrillic_EN, "Cyrillic_EN" },
-  { GDK_Cyrillic_O, "Cyrillic_O" },
-  { GDK_Cyrillic_PE, "Cyrillic_PE" },
-  { GDK_Cyrillic_YA, "Cyrillic_YA" },
-  { GDK_Cyrillic_ER, "Cyrillic_ER" },
-  { GDK_Cyrillic_ES, "Cyrillic_ES" },
-  { GDK_Cyrillic_TE, "Cyrillic_TE" },
-  { GDK_Cyrillic_U, "Cyrillic_U" },
-  { GDK_Cyrillic_ZHE, "Cyrillic_ZHE" },
-  { GDK_Cyrillic_VE, "Cyrillic_VE" },
-  { GDK_Cyrillic_SOFTSIGN, "Cyrillic_SOFTSIGN" },
-  { GDK_Cyrillic_YERU, "Cyrillic_YERU" },
-  { GDK_Cyrillic_ZE, "Cyrillic_ZE" },
-  { GDK_Cyrillic_SHA, "Cyrillic_SHA" },
-  { GDK_Cyrillic_E, "Cyrillic_E" },
-  { GDK_Cyrillic_SHCHA, "Cyrillic_SHCHA" },
-  { GDK_Cyrillic_CHE, "Cyrillic_CHE" },
-  { GDK_Cyrillic_HARDSIGN, "Cyrillic_HARDSIGN" },
-  { GDK_Greek_ALPHAaccent, "Greek_ALPHAaccent" },
-  { GDK_Greek_EPSILONaccent, "Greek_EPSILONaccent" },
-  { GDK_Greek_ETAaccent, "Greek_ETAaccent" },
-  { GDK_Greek_IOTAaccent, "Greek_IOTAaccent" },
-  { GDK_Greek_IOTAdiaeresis, "Greek_IOTAdiaeresis" },
-  { GDK_Greek_OMICRONaccent, "Greek_OMICRONaccent" },
-  { GDK_Greek_UPSILONaccent, "Greek_UPSILONaccent" },
-  { GDK_Greek_UPSILONdieresis, "Greek_UPSILONdieresis" },
-  { GDK_Greek_OMEGAaccent, "Greek_OMEGAaccent" },
-  { GDK_Greek_accentdieresis, "Greek_accentdieresis" },
-  { GDK_Greek_horizbar, "Greek_horizbar" },
-  { GDK_Greek_alphaaccent, "Greek_alphaaccent" },
-  { GDK_Greek_epsilonaccent, "Greek_epsilonaccent" },
-  { GDK_Greek_etaaccent, "Greek_etaaccent" },
-  { GDK_Greek_iotaaccent, "Greek_iotaaccent" },
-  { GDK_Greek_iotadieresis, "Greek_iotadieresis" },
-  { GDK_Greek_iotaaccentdieresis, "Greek_iotaaccentdieresis" },
-  { GDK_Greek_omicronaccent, "Greek_omicronaccent" },
-  { GDK_Greek_upsilonaccent, "Greek_upsilonaccent" },
-  { GDK_Greek_upsilondieresis, "Greek_upsilondieresis" },
-  { GDK_Greek_upsilonaccentdieresis, "Greek_upsilonaccentdieresis" },
-  { GDK_Greek_omegaaccent, "Greek_omegaaccent" },
-  { GDK_Greek_ALPHA, "Greek_ALPHA" },
-  { GDK_Greek_BETA, "Greek_BETA" },
-  { GDK_Greek_GAMMA, "Greek_GAMMA" },
-  { GDK_Greek_DELTA, "Greek_DELTA" },
-  { GDK_Greek_EPSILON, "Greek_EPSILON" },
-  { GDK_Greek_ZETA, "Greek_ZETA" },
-  { GDK_Greek_ETA, "Greek_ETA" },
-  { GDK_Greek_THETA, "Greek_THETA" },
-  { GDK_Greek_IOTA, "Greek_IOTA" },
-  { GDK_Greek_KAPPA, "Greek_KAPPA" },
-  { GDK_Greek_LAMDA, "Greek_LAMDA" },
-  { GDK_Greek_LAMBDA, "Greek_LAMBDA" },
-  { GDK_Greek_MU, "Greek_MU" },
-  { GDK_Greek_NU, "Greek_NU" },
-  { GDK_Greek_XI, "Greek_XI" },
-  { GDK_Greek_OMICRON, "Greek_OMICRON" },
-  { GDK_Greek_PI, "Greek_PI" },
-  { GDK_Greek_RHO, "Greek_RHO" },
-  { GDK_Greek_SIGMA, "Greek_SIGMA" },
-  { GDK_Greek_TAU, "Greek_TAU" },
-  { GDK_Greek_UPSILON, "Greek_UPSILON" },
-  { GDK_Greek_PHI, "Greek_PHI" },
-  { GDK_Greek_CHI, "Greek_CHI" },
-  { GDK_Greek_PSI, "Greek_PSI" },
-  { GDK_Greek_OMEGA, "Greek_OMEGA" },
-  { GDK_Greek_alpha, "Greek_alpha" },
-  { GDK_Greek_beta, "Greek_beta" },
-  { GDK_Greek_gamma, "Greek_gamma" },
-  { GDK_Greek_delta, "Greek_delta" },
-  { GDK_Greek_epsilon, "Greek_epsilon" },
-  { GDK_Greek_zeta, "Greek_zeta" },
-  { GDK_Greek_eta, "Greek_eta" },
-  { GDK_Greek_theta, "Greek_theta" },
-  { GDK_Greek_iota, "Greek_iota" },
-  { GDK_Greek_kappa, "Greek_kappa" },
-  { GDK_Greek_lamda, "Greek_lamda" },
-  { GDK_Greek_lambda, "Greek_lambda" },
-  { GDK_Greek_mu, "Greek_mu" },
-  { GDK_Greek_nu, "Greek_nu" },
-  { GDK_Greek_xi, "Greek_xi" },
-  { GDK_Greek_omicron, "Greek_omicron" },
-  { GDK_Greek_pi, "Greek_pi" },
-  { GDK_Greek_rho, "Greek_rho" },
-  { GDK_Greek_sigma, "Greek_sigma" },
-  { GDK_Greek_finalsmallsigma, "Greek_finalsmallsigma" },
-  { GDK_Greek_tau, "Greek_tau" },
-  { GDK_Greek_upsilon, "Greek_upsilon" },
-  { GDK_Greek_phi, "Greek_phi" },
-  { GDK_Greek_chi, "Greek_chi" },
-  { GDK_Greek_psi, "Greek_psi" },
-  { GDK_Greek_omega, "Greek_omega" },
-  { GDK_leftradical, "leftradical" },
-  { GDK_topleftradical, "topleftradical" },
-  { GDK_horizconnector, "horizconnector" },
-  { GDK_topintegral, "topintegral" },
-  { GDK_botintegral, "botintegral" },
-  { GDK_vertconnector, "vertconnector" },
-  { GDK_topleftsqbracket, "topleftsqbracket" },
-  { GDK_botleftsqbracket, "botleftsqbracket" },
-  { GDK_toprightsqbracket, "toprightsqbracket" },
-  { GDK_botrightsqbracket, "botrightsqbracket" },
-  { GDK_topleftparens, "topleftparens" },
-  { GDK_botleftparens, "botleftparens" },
-  { GDK_toprightparens, "toprightparens" },
-  { GDK_botrightparens, "botrightparens" },
-  { GDK_leftmiddlecurlybrace, "leftmiddlecurlybrace" },
-  { GDK_rightmiddlecurlybrace, "rightmiddlecurlybrace" },
-  { GDK_topleftsummation, "topleftsummation" },
-  { GDK_botleftsummation, "botleftsummation" },
-  { GDK_topvertsummationconnector, "topvertsummationconnector" },
-  { GDK_botvertsummationconnector, "botvertsummationconnector" },
-  { GDK_toprightsummation, "toprightsummation" },
-  { GDK_botrightsummation, "botrightsummation" },
-  { GDK_rightmiddlesummation, "rightmiddlesummation" },
-  { GDK_lessthanequal, "lessthanequal" },
-  { GDK_notequal, "notequal" },
-  { GDK_greaterthanequal, "greaterthanequal" },
-  { GDK_integral, "integral" },
-  { GDK_therefore, "therefore" },
-  { GDK_variation, "variation" },
-  { GDK_infinity, "infinity" },
-  { GDK_nabla, "nabla" },
-  { GDK_approximate, "approximate" },
-  { GDK_similarequal, "similarequal" },
-  { GDK_ifonlyif, "ifonlyif" },
-  { GDK_implies, "implies" },
-  { GDK_identical, "identical" },
-  { GDK_radical, "radical" },
-  { GDK_includedin, "includedin" },
-  { GDK_includes, "includes" },
-  { GDK_intersection, "intersection" },
-  { GDK_union, "union" },
-  { GDK_logicaland, "logicaland" },
-  { GDK_logicalor, "logicalor" },
-  { GDK_partialderivative, "partialderivative" },
-  { GDK_function, "function" },
-  { GDK_leftarrow, "leftarrow" },
-  { GDK_uparrow, "uparrow" },
-  { GDK_rightarrow, "rightarrow" },
-  { GDK_downarrow, "downarrow" },
-  { GDK_blank, "blank" },
-  { GDK_soliddiamond, "soliddiamond" },
-  { GDK_checkerboard, "checkerboard" },
-  { GDK_ht, "ht" },
-  { GDK_ff, "ff" },
-  { GDK_cr, "cr" },
-  { GDK_lf, "lf" },
-  { GDK_nl, "nl" },
-  { GDK_vt, "vt" },
-  { GDK_lowrightcorner, "lowrightcorner" },
-  { GDK_uprightcorner, "uprightcorner" },
-  { GDK_upleftcorner, "upleftcorner" },
-  { GDK_lowleftcorner, "lowleftcorner" },
-  { GDK_crossinglines, "crossinglines" },
-  { GDK_horizlinescan1, "horizlinescan1" },
-  { GDK_horizlinescan3, "horizlinescan3" },
-  { GDK_horizlinescan5, "horizlinescan5" },
-  { GDK_horizlinescan7, "horizlinescan7" },
-  { GDK_horizlinescan9, "horizlinescan9" },
-  { GDK_leftt, "leftt" },
-  { GDK_rightt, "rightt" },
-  { GDK_bott, "bott" },
-  { GDK_topt, "topt" },
-  { GDK_vertbar, "vertbar" },
-  { GDK_emspace, "emspace" },
-  { GDK_enspace, "enspace" },
-  { GDK_em3space, "em3space" },
-  { GDK_em4space, "em4space" },
-  { GDK_digitspace, "digitspace" },
-  { GDK_punctspace, "punctspace" },
-  { GDK_thinspace, "thinspace" },
-  { GDK_hairspace, "hairspace" },
-  { GDK_emdash, "emdash" },
-  { GDK_endash, "endash" },
-  { GDK_signifblank, "signifblank" },
-  { GDK_ellipsis, "ellipsis" },
-  { GDK_doubbaselinedot, "doubbaselinedot" },
-  { GDK_onethird, "onethird" },
-  { GDK_twothirds, "twothirds" },
-  { GDK_onefifth, "onefifth" },
-  { GDK_twofifths, "twofifths" },
-  { GDK_threefifths, "threefifths" },
-  { GDK_fourfifths, "fourfifths" },
-  { GDK_onesixth, "onesixth" },
-  { GDK_fivesixths, "fivesixths" },
-  { GDK_careof, "careof" },
-  { GDK_figdash, "figdash" },
-  { GDK_leftanglebracket, "leftanglebracket" },
-  { GDK_decimalpoint, "decimalpoint" },
-  { GDK_rightanglebracket, "rightanglebracket" },
-  { GDK_marker, "marker" },
-  { GDK_oneeighth, "oneeighth" },
-  { GDK_threeeighths, "threeeighths" },
-  { GDK_fiveeighths, "fiveeighths" },
-  { GDK_seveneighths, "seveneighths" },
-  { GDK_trademark, "trademark" },
-  { GDK_signaturemark, "signaturemark" },
-  { GDK_trademarkincircle, "trademarkincircle" },
-  { GDK_leftopentriangle, "leftopentriangle" },
-  { GDK_rightopentriangle, "rightopentriangle" },
-  { GDK_emopencircle, "emopencircle" },
-  { GDK_emopenrectangle, "emopenrectangle" },
-  { GDK_leftsinglequotemark, "leftsinglequotemark" },
-  { GDK_rightsinglequotemark, "rightsinglequotemark" },
-  { GDK_leftdoublequotemark, "leftdoublequotemark" },
-  { GDK_rightdoublequotemark, "rightdoublequotemark" },
-  { GDK_prescription, "prescription" },
-  { GDK_minutes, "minutes" },
-  { GDK_seconds, "seconds" },
-  { GDK_latincross, "latincross" },
-  { GDK_hexagram, "hexagram" },
-  { GDK_filledrectbullet, "filledrectbullet" },
-  { GDK_filledlefttribullet, "filledlefttribullet" },
-  { GDK_filledrighttribullet, "filledrighttribullet" },
-  { GDK_emfilledcircle, "emfilledcircle" },
-  { GDK_emfilledrect, "emfilledrect" },
-  { GDK_enopencircbullet, "enopencircbullet" },
-  { GDK_enopensquarebullet, "enopensquarebullet" },
-  { GDK_openrectbullet, "openrectbullet" },
-  { GDK_opentribulletup, "opentribulletup" },
-  { GDK_opentribulletdown, "opentribulletdown" },
-  { GDK_openstar, "openstar" },
-  { GDK_enfilledcircbullet, "enfilledcircbullet" },
-  { GDK_enfilledsqbullet, "enfilledsqbullet" },
-  { GDK_filledtribulletup, "filledtribulletup" },
-  { GDK_filledtribulletdown, "filledtribulletdown" },
-  { GDK_leftpointer, "leftpointer" },
-  { GDK_rightpointer, "rightpointer" },
-  { GDK_club, "club" },
-  { GDK_diamond, "diamond" },
-  { GDK_heart, "heart" },
-  { GDK_maltesecross, "maltesecross" },
-  { GDK_dagger, "dagger" },
-  { GDK_doubledagger, "doubledagger" },
-  { GDK_checkmark, "checkmark" },
-  { GDK_ballotcross, "ballotcross" },
-  { GDK_musicalsharp, "musicalsharp" },
-  { GDK_musicalflat, "musicalflat" },
-  { GDK_malesymbol, "malesymbol" },
-  { GDK_femalesymbol, "femalesymbol" },
-  { GDK_telephone, "telephone" },
-  { GDK_telephonerecorder, "telephonerecorder" },
-  { GDK_phonographcopyright, "phonographcopyright" },
-  { GDK_caret, "caret" },
-  { GDK_singlelowquotemark, "singlelowquotemark" },
-  { GDK_doublelowquotemark, "doublelowquotemark" },
-  { GDK_cursor, "cursor" },
-  { GDK_leftcaret, "leftcaret" },
-  { GDK_rightcaret, "rightcaret" },
-  { GDK_downcaret, "downcaret" },
-  { GDK_upcaret, "upcaret" },
-  { GDK_overbar, "overbar" },
-  { GDK_downtack, "downtack" },
-  { GDK_upshoe, "upshoe" },
-  { GDK_downstile, "downstile" },
-  { GDK_underbar, "underbar" },
-  { GDK_jot, "jot" },
-  { GDK_quad, "quad" },
-  { GDK_uptack, "uptack" },
-  { GDK_circle, "circle" },
-  { GDK_upstile, "upstile" },
-  { GDK_downshoe, "downshoe" },
-  { GDK_rightshoe, "rightshoe" },
-  { GDK_leftshoe, "leftshoe" },
-  { GDK_lefttack, "lefttack" },
-  { GDK_righttack, "righttack" },
-  { GDK_hebrew_doublelowline, "hebrew_doublelowline" },
-  { GDK_hebrew_aleph, "hebrew_aleph" },
-  { GDK_hebrew_bet, "hebrew_bet" },
-  { GDK_hebrew_beth, "hebrew_beth" },
-  { GDK_hebrew_gimel, "hebrew_gimel" },
-  { GDK_hebrew_gimmel, "hebrew_gimmel" },
-  { GDK_hebrew_dalet, "hebrew_dalet" },
-  { GDK_hebrew_daleth, "hebrew_daleth" },
-  { GDK_hebrew_he, "hebrew_he" },
-  { GDK_hebrew_waw, "hebrew_waw" },
-  { GDK_hebrew_zain, "hebrew_zain" },
-  { GDK_hebrew_zayin, "hebrew_zayin" },
-  { GDK_hebrew_chet, "hebrew_chet" },
-  { GDK_hebrew_het, "hebrew_het" },
-  { GDK_hebrew_tet, "hebrew_tet" },
-  { GDK_hebrew_teth, "hebrew_teth" },
-  { GDK_hebrew_yod, "hebrew_yod" },
-  { GDK_hebrew_finalkaph, "hebrew_finalkaph" },
-  { GDK_hebrew_kaph, "hebrew_kaph" },
-  { GDK_hebrew_lamed, "hebrew_lamed" },
-  { GDK_hebrew_finalmem, "hebrew_finalmem" },
-  { GDK_hebrew_mem, "hebrew_mem" },
-  { GDK_hebrew_finalnun, "hebrew_finalnun" },
-  { GDK_hebrew_nun, "hebrew_nun" },
-  { GDK_hebrew_samech, "hebrew_samech" },
-  { GDK_hebrew_samekh, "hebrew_samekh" },
-  { GDK_hebrew_ayin, "hebrew_ayin" },
-  { GDK_hebrew_finalpe, "hebrew_finalpe" },
-  { GDK_hebrew_pe, "hebrew_pe" },
-  { GDK_hebrew_finalzade, "hebrew_finalzade" },
-  { GDK_hebrew_finalzadi, "hebrew_finalzadi" },
-  { GDK_hebrew_zade, "hebrew_zade" },
-  { GDK_hebrew_zadi, "hebrew_zadi" },
-  { GDK_hebrew_qoph, "hebrew_qoph" },
-  { GDK_hebrew_kuf, "hebrew_kuf" },
-  { GDK_hebrew_resh, "hebrew_resh" },
-  { GDK_hebrew_shin, "hebrew_shin" },
-  { GDK_hebrew_taw, "hebrew_taw" },
-  { GDK_hebrew_taf, "hebrew_taf" },
-  { GDK_Thai_kokai, "Thai_kokai" },
-  { GDK_Thai_khokhai, "Thai_khokhai" },
-  { GDK_Thai_khokhuat, "Thai_khokhuat" },
-  { GDK_Thai_khokhwai, "Thai_khokhwai" },
-  { GDK_Thai_khokhon, "Thai_khokhon" },
-  { GDK_Thai_khorakhang, "Thai_khorakhang" },
-  { GDK_Thai_ngongu, "Thai_ngongu" },
-  { GDK_Thai_chochan, "Thai_chochan" },
-  { GDK_Thai_choching, "Thai_choching" },
-  { GDK_Thai_chochang, "Thai_chochang" },
-  { GDK_Thai_soso, "Thai_soso" },
-  { GDK_Thai_chochoe, "Thai_chochoe" },
-  { GDK_Thai_yoying, "Thai_yoying" },
-  { GDK_Thai_dochada, "Thai_dochada" },
-  { GDK_Thai_topatak, "Thai_topatak" },
-  { GDK_Thai_thothan, "Thai_thothan" },
-  { GDK_Thai_thonangmontho, "Thai_thonangmontho" },
-  { GDK_Thai_thophuthao, "Thai_thophuthao" },
-  { GDK_Thai_nonen, "Thai_nonen" },
-  { GDK_Thai_dodek, "Thai_dodek" },
-  { GDK_Thai_totao, "Thai_totao" },
-  { GDK_Thai_thothung, "Thai_thothung" },
-  { GDK_Thai_thothahan, "Thai_thothahan" },
-  { GDK_Thai_thothong, "Thai_thothong" },
-  { GDK_Thai_nonu, "Thai_nonu" },
-  { GDK_Thai_bobaimai, "Thai_bobaimai" },
-  { GDK_Thai_popla, "Thai_popla" },
-  { GDK_Thai_phophung, "Thai_phophung" },
-  { GDK_Thai_fofa, "Thai_fofa" },
-  { GDK_Thai_phophan, "Thai_phophan" },
-  { GDK_Thai_fofan, "Thai_fofan" },
-  { GDK_Thai_phosamphao, "Thai_phosamphao" },
-  { GDK_Thai_moma, "Thai_moma" },
-  { GDK_Thai_yoyak, "Thai_yoyak" },
-  { GDK_Thai_rorua, "Thai_rorua" },
-  { GDK_Thai_ru, "Thai_ru" },
-  { GDK_Thai_loling, "Thai_loling" },
-  { GDK_Thai_lu, "Thai_lu" },
-  { GDK_Thai_wowaen, "Thai_wowaen" },
-  { GDK_Thai_sosala, "Thai_sosala" },
-  { GDK_Thai_sorusi, "Thai_sorusi" },
-  { GDK_Thai_sosua, "Thai_sosua" },
-  { GDK_Thai_hohip, "Thai_hohip" },
-  { GDK_Thai_lochula, "Thai_lochula" },
-  { GDK_Thai_oang, "Thai_oang" },
-  { GDK_Thai_honokhuk, "Thai_honokhuk" },
-  { GDK_Thai_paiyannoi, "Thai_paiyannoi" },
-  { GDK_Thai_saraa, "Thai_saraa" },
-  { GDK_Thai_maihanakat, "Thai_maihanakat" },
-  { GDK_Thai_saraaa, "Thai_saraaa" },
-  { GDK_Thai_saraam, "Thai_saraam" },
-  { GDK_Thai_sarai, "Thai_sarai" },
-  { GDK_Thai_saraii, "Thai_saraii" },
-  { GDK_Thai_saraue, "Thai_saraue" },
-  { GDK_Thai_sarauee, "Thai_sarauee" },
-  { GDK_Thai_sarau, "Thai_sarau" },
-  { GDK_Thai_sarauu, "Thai_sarauu" },
-  { GDK_Thai_phinthu, "Thai_phinthu" },
-  { GDK_Thai_maihanakat_maitho, "Thai_maihanakat_maitho" },
-  { GDK_Thai_baht, "Thai_baht" },
-  { GDK_Thai_sarae, "Thai_sarae" },
-  { GDK_Thai_saraae, "Thai_saraae" },
-  { GDK_Thai_sarao, "Thai_sarao" },
-  { GDK_Thai_saraaimaimuan, "Thai_saraaimaimuan" },
-  { GDK_Thai_saraaimaimalai, "Thai_saraaimaimalai" },
-  { GDK_Thai_lakkhangyao, "Thai_lakkhangyao" },
-  { GDK_Thai_maiyamok, "Thai_maiyamok" },
-  { GDK_Thai_maitaikhu, "Thai_maitaikhu" },
-  { GDK_Thai_maiek, "Thai_maiek" },
-  { GDK_Thai_maitho, "Thai_maitho" },
-  { GDK_Thai_maitri, "Thai_maitri" },
-  { GDK_Thai_maichattawa, "Thai_maichattawa" },
-  { GDK_Thai_thanthakhat, "Thai_thanthakhat" },
-  { GDK_Thai_nikhahit, "Thai_nikhahit" },
-  { GDK_Thai_leksun, "Thai_leksun" },
-  { GDK_Thai_leknung, "Thai_leknung" },
-  { GDK_Thai_leksong, "Thai_leksong" },
-  { GDK_Thai_leksam, "Thai_leksam" },
-  { GDK_Thai_leksi, "Thai_leksi" },
-  { GDK_Thai_lekha, "Thai_lekha" },
-  { GDK_Thai_lekhok, "Thai_lekhok" },
-  { GDK_Thai_lekchet, "Thai_lekchet" },
-  { GDK_Thai_lekpaet, "Thai_lekpaet" },
-  { GDK_Thai_lekkao, "Thai_lekkao" },
-  { GDK_Hangul_Kiyeog, "Hangul_Kiyeog" },
-  { GDK_Hangul_SsangKiyeog, "Hangul_SsangKiyeog" },
-  { GDK_Hangul_KiyeogSios, "Hangul_KiyeogSios" },
-  { GDK_Hangul_Nieun, "Hangul_Nieun" },
-  { GDK_Hangul_NieunJieuj, "Hangul_NieunJieuj" },
-  { GDK_Hangul_NieunHieuh, "Hangul_NieunHieuh" },
-  { GDK_Hangul_Dikeud, "Hangul_Dikeud" },
-  { GDK_Hangul_SsangDikeud, "Hangul_SsangDikeud" },
-  { GDK_Hangul_Rieul, "Hangul_Rieul" },
-  { GDK_Hangul_RieulKiyeog, "Hangul_RieulKiyeog" },
-  { GDK_Hangul_RieulMieum, "Hangul_RieulMieum" },
-  { GDK_Hangul_RieulPieub, "Hangul_RieulPieub" },
-  { GDK_Hangul_RieulSios, "Hangul_RieulSios" },
-  { GDK_Hangul_RieulTieut, "Hangul_RieulTieut" },
-  { GDK_Hangul_RieulPhieuf, "Hangul_RieulPhieuf" },
-  { GDK_Hangul_RieulHieuh, "Hangul_RieulHieuh" },
-  { GDK_Hangul_Mieum, "Hangul_Mieum" },
-  { GDK_Hangul_Pieub, "Hangul_Pieub" },
-  { GDK_Hangul_SsangPieub, "Hangul_SsangPieub" },
-  { GDK_Hangul_PieubSios, "Hangul_PieubSios" },
-  { GDK_Hangul_Sios, "Hangul_Sios" },
-  { GDK_Hangul_SsangSios, "Hangul_SsangSios" },
-  { GDK_Hangul_Ieung, "Hangul_Ieung" },
-  { GDK_Hangul_Jieuj, "Hangul_Jieuj" },
-  { GDK_Hangul_SsangJieuj, "Hangul_SsangJieuj" },
-  { GDK_Hangul_Cieuc, "Hangul_Cieuc" },
-  { GDK_Hangul_Khieuq, "Hangul_Khieuq" },
-  { GDK_Hangul_Tieut, "Hangul_Tieut" },
-  { GDK_Hangul_Phieuf, "Hangul_Phieuf" },
-  { GDK_Hangul_Hieuh, "Hangul_Hieuh" },
-  { GDK_Hangul_A, "Hangul_A" },
-  { GDK_Hangul_AE, "Hangul_AE" },
-  { GDK_Hangul_YA, "Hangul_YA" },
-  { GDK_Hangul_YAE, "Hangul_YAE" },
-  { GDK_Hangul_EO, "Hangul_EO" },
-  { GDK_Hangul_E, "Hangul_E" },
-  { GDK_Hangul_YEO, "Hangul_YEO" },
-  { GDK_Hangul_YE, "Hangul_YE" },
-  { GDK_Hangul_O, "Hangul_O" },
-  { GDK_Hangul_WA, "Hangul_WA" },
-  { GDK_Hangul_WAE, "Hangul_WAE" },
-  { GDK_Hangul_OE, "Hangul_OE" },
-  { GDK_Hangul_YO, "Hangul_YO" },
-  { GDK_Hangul_U, "Hangul_U" },
-  { GDK_Hangul_WEO, "Hangul_WEO" },
-  { GDK_Hangul_WE, "Hangul_WE" },
-  { GDK_Hangul_WI, "Hangul_WI" },
-  { GDK_Hangul_YU, "Hangul_YU" },
-  { GDK_Hangul_EU, "Hangul_EU" },
-  { GDK_Hangul_YI, "Hangul_YI" },
-  { GDK_Hangul_I, "Hangul_I" },
-  { GDK_Hangul_J_Kiyeog, "Hangul_J_Kiyeog" },
-  { GDK_Hangul_J_SsangKiyeog, "Hangul_J_SsangKiyeog" },
-  { GDK_Hangul_J_KiyeogSios, "Hangul_J_KiyeogSios" },
-  { GDK_Hangul_J_Nieun, "Hangul_J_Nieun" },
-  { GDK_Hangul_J_NieunJieuj, "Hangul_J_NieunJieuj" },
-  { GDK_Hangul_J_NieunHieuh, "Hangul_J_NieunHieuh" },
-  { GDK_Hangul_J_Dikeud, "Hangul_J_Dikeud" },
-  { GDK_Hangul_J_Rieul, "Hangul_J_Rieul" },
-  { GDK_Hangul_J_RieulKiyeog, "Hangul_J_RieulKiyeog" },
-  { GDK_Hangul_J_RieulMieum, "Hangul_J_RieulMieum" },
-  { GDK_Hangul_J_RieulPieub, "Hangul_J_RieulPieub" },
-  { GDK_Hangul_J_RieulSios, "Hangul_J_RieulSios" },
-  { GDK_Hangul_J_RieulTieut, "Hangul_J_RieulTieut" },
-  { GDK_Hangul_J_RieulPhieuf, "Hangul_J_RieulPhieuf" },
-  { GDK_Hangul_J_RieulHieuh, "Hangul_J_RieulHieuh" },
-  { GDK_Hangul_J_Mieum, "Hangul_J_Mieum" },
-  { GDK_Hangul_J_Pieub, "Hangul_J_Pieub" },
-  { GDK_Hangul_J_PieubSios, "Hangul_J_PieubSios" },
-  { GDK_Hangul_J_Sios, "Hangul_J_Sios" },
-  { GDK_Hangul_J_SsangSios, "Hangul_J_SsangSios" },
-  { GDK_Hangul_J_Ieung, "Hangul_J_Ieung" },
-  { GDK_Hangul_J_Jieuj, "Hangul_J_Jieuj" },
-  { GDK_Hangul_J_Cieuc, "Hangul_J_Cieuc" },
-  { GDK_Hangul_J_Khieuq, "Hangul_J_Khieuq" },
-  { GDK_Hangul_J_Tieut, "Hangul_J_Tieut" },
-  { GDK_Hangul_J_Phieuf, "Hangul_J_Phieuf" },
-  { GDK_Hangul_J_Hieuh, "Hangul_J_Hieuh" },
-  { GDK_Hangul_RieulYeorinHieuh, "Hangul_RieulYeorinHieuh" },
-  { GDK_Hangul_SunkyeongeumMieum, "Hangul_SunkyeongeumMieum" },
-  { GDK_Hangul_SunkyeongeumPieub, "Hangul_SunkyeongeumPieub" },
-  { GDK_Hangul_PanSios, "Hangul_PanSios" },
-  { GDK_Hangul_KkogjiDalrinIeung, "Hangul_KkogjiDalrinIeung" },
-  { GDK_Hangul_SunkyeongeumPhieuf, "Hangul_SunkyeongeumPhieuf" },
-  { GDK_Hangul_YeorinHieuh, "Hangul_YeorinHieuh" },
-  { GDK_Hangul_AraeA, "Hangul_AraeA" },
-  { GDK_Hangul_AraeAE, "Hangul_AraeAE" },
-  { GDK_Hangul_J_PanSios, "Hangul_J_PanSios" },
-  { GDK_Hangul_J_KkogjiDalrinIeung, "Hangul_J_KkogjiDalrinIeung" },
-  { GDK_Hangul_J_YeorinHieuh, "Hangul_J_YeorinHieuh" },
-  { GDK_Korean_Won, "Korean_Won" },
-  { GDK_OE, "OE" },
-  { GDK_oe, "oe" },
-  { GDK_Ydiaeresis, "Ydiaeresis" },
-  { GDK_EcuSign, "EcuSign" },
-  { GDK_ColonSign, "ColonSign" },
-  { GDK_CruzeiroSign, "CruzeiroSign" },
-  { GDK_FFrancSign, "FFrancSign" },
-  { GDK_LiraSign, "LiraSign" },
-  { GDK_MillSign, "MillSign" },
-  { GDK_NairaSign, "NairaSign" },
-  { GDK_PesetaSign, "PesetaSign" },
-  { GDK_RupeeSign, "RupeeSign" },
-  { GDK_WonSign, "WonSign" },
-  { GDK_NewSheqelSign, "NewSheqelSign" },
-  { GDK_DongSign, "DongSign" },
-  { GDK_EuroSign, "EuroSign" },
-  { GDK_3270_Duplicate, "3270_Duplicate" },
-  { GDK_3270_FieldMark, "3270_FieldMark" },
-  { GDK_3270_Right2, "3270_Right2" },
-  { GDK_3270_Left2, "3270_Left2" },
-  { GDK_3270_BackTab, "3270_BackTab" },
-  { GDK_3270_EraseEOF, "3270_EraseEOF" },
-  { GDK_3270_EraseInput, "3270_EraseInput" },
-  { GDK_3270_Reset, "3270_Reset" },
-  { GDK_3270_Quit, "3270_Quit" },
-  { GDK_3270_PA1, "3270_PA1" },
-  { GDK_3270_PA2, "3270_PA2" },
-  { GDK_3270_PA3, "3270_PA3" },
-  { GDK_3270_Test, "3270_Test" },
-  { GDK_3270_Attn, "3270_Attn" },
-  { GDK_3270_CursorBlink, "3270_CursorBlink" },
-  { GDK_3270_AltCursor, "3270_AltCursor" },
-  { GDK_3270_KeyClick, "3270_KeyClick" },
-  { GDK_3270_Jump, "3270_Jump" },
-  { GDK_3270_Ident, "3270_Ident" },
-  { GDK_3270_Rule, "3270_Rule" },
-  { GDK_3270_Copy, "3270_Copy" },
-  { GDK_3270_Play, "3270_Play" },
-  { GDK_3270_Setup, "3270_Setup" },
-  { GDK_3270_Record, "3270_Record" },
-  { GDK_3270_ChangeScreen, "3270_ChangeScreen" },
-  { GDK_3270_DeleteWord, "3270_DeleteWord" },
-  { GDK_3270_ExSelect, "3270_ExSelect" },
-  { GDK_3270_CursorSelect, "3270_CursorSelect" },
-  { GDK_3270_PrintScreen, "3270_PrintScreen" },
-  { GDK_3270_Enter, "3270_Enter" },
-  { GDK_ISO_Lock, "ISO_Lock" },
-  { GDK_ISO_Level2_Latch, "ISO_Level2_Latch" },
-  { GDK_ISO_Level3_Shift, "ISO_Level3_Shift" },
-  { GDK_ISO_Level3_Latch, "ISO_Level3_Latch" },
-  { GDK_ISO_Level3_Lock, "ISO_Level3_Lock" },
-  { GDK_ISO_Group_Latch, "ISO_Group_Latch" },
-  { GDK_ISO_Group_Lock, "ISO_Group_Lock" },
-  { GDK_ISO_Next_Group, "ISO_Next_Group" },
-  { GDK_ISO_Next_Group_Lock, "ISO_Next_Group_Lock" },
-  { GDK_ISO_Prev_Group, "ISO_Prev_Group" },
-  { GDK_ISO_Prev_Group_Lock, "ISO_Prev_Group_Lock" },
-  { GDK_ISO_First_Group, "ISO_First_Group" },
-  { GDK_ISO_First_Group_Lock, "ISO_First_Group_Lock" },
-  { GDK_ISO_Last_Group, "ISO_Last_Group" },
-  { GDK_ISO_Last_Group_Lock, "ISO_Last_Group_Lock" },
-  { GDK_ISO_Left_Tab, "ISO_Left_Tab" },
-  { GDK_ISO_Move_Line_Up, "ISO_Move_Line_Up" },
-  { GDK_ISO_Move_Line_Down, "ISO_Move_Line_Down" },
-  { GDK_ISO_Partial_Line_Up, "ISO_Partial_Line_Up" },
-  { GDK_ISO_Partial_Line_Down, "ISO_Partial_Line_Down" },
-  { GDK_ISO_Partial_Space_Left, "ISO_Partial_Space_Left" },
-  { GDK_ISO_Partial_Space_Right, "ISO_Partial_Space_Right" },
-  { GDK_ISO_Set_Margin_Left, "ISO_Set_Margin_Left" },
-  { GDK_ISO_Set_Margin_Right, "ISO_Set_Margin_Right" },
-  { GDK_ISO_Release_Margin_Left, "ISO_Release_Margin_Left" },
-  { GDK_ISO_Release_Margin_Right, "ISO_Release_Margin_Right" },
-  { GDK_ISO_Release_Both_Margins, "ISO_Release_Both_Margins" },
-  { GDK_ISO_Fast_Cursor_Left, "ISO_Fast_Cursor_Left" },
-  { GDK_ISO_Fast_Cursor_Right, "ISO_Fast_Cursor_Right" },
-  { GDK_ISO_Fast_Cursor_Up, "ISO_Fast_Cursor_Up" },
-  { GDK_ISO_Fast_Cursor_Down, "ISO_Fast_Cursor_Down" },
-  { GDK_ISO_Continuous_Underline, "ISO_Continuous_Underline" },
-  { GDK_ISO_Discontinuous_Underline, "ISO_Discontinuous_Underline" },
-  { GDK_ISO_Emphasize, "ISO_Emphasize" },
-  { GDK_ISO_Center_Object, "ISO_Center_Object" },
-  { GDK_ISO_Enter, "ISO_Enter" },
-  { GDK_dead_grave, "dead_grave" },
-  { GDK_dead_acute, "dead_acute" },
-  { GDK_dead_circumflex, "dead_circumflex" },
-  { GDK_dead_tilde, "dead_tilde" },
-  { GDK_dead_macron, "dead_macron" },
-  { GDK_dead_breve, "dead_breve" },
-  { GDK_dead_abovedot, "dead_abovedot" },
-  { GDK_dead_diaeresis, "dead_diaeresis" },
-  { GDK_dead_abovering, "dead_abovering" },
-  { GDK_dead_doubleacute, "dead_doubleacute" },
-  { GDK_dead_caron, "dead_caron" },
-  { GDK_dead_cedilla, "dead_cedilla" },
-  { GDK_dead_ogonek, "dead_ogonek" },
-  { GDK_dead_iota, "dead_iota" },
-  { GDK_dead_voiced_sound, "dead_voiced_sound" },
-  { GDK_dead_semivoiced_sound, "dead_semivoiced_sound" },
-  { GDK_dead_belowdot, "dead_belowdot" },
-  { GDK_AccessX_Enable, "AccessX_Enable" },
-  { GDK_AccessX_Feedback_Enable, "AccessX_Feedback_Enable" },
-  { GDK_RepeatKeys_Enable, "RepeatKeys_Enable" },
-  { GDK_SlowKeys_Enable, "SlowKeys_Enable" },
-  { GDK_BounceKeys_Enable, "BounceKeys_Enable" },
-  { GDK_StickyKeys_Enable, "StickyKeys_Enable" },
-  { GDK_MouseKeys_Enable, "MouseKeys_Enable" },
-  { GDK_MouseKeys_Accel_Enable, "MouseKeys_Accel_Enable" },
-  { GDK_Overlay1_Enable, "Overlay1_Enable" },
-  { GDK_Overlay2_Enable, "Overlay2_Enable" },
-  { GDK_AudibleBell_Enable, "AudibleBell_Enable" },
-  { GDK_First_Virtual_Screen, "First_Virtual_Screen" },
-  { GDK_Prev_Virtual_Screen, "Prev_Virtual_Screen" },
-  { GDK_Next_Virtual_Screen, "Next_Virtual_Screen" },
-  { GDK_Last_Virtual_Screen, "Last_Virtual_Screen" },
-  { GDK_Terminate_Server, "Terminate_Server" },
-  { GDK_Pointer_Left, "Pointer_Left" },
-  { GDK_Pointer_Right, "Pointer_Right" },
-  { GDK_Pointer_Up, "Pointer_Up" },
-  { GDK_Pointer_Down, "Pointer_Down" },
-  { GDK_Pointer_UpLeft, "Pointer_UpLeft" },
-  { GDK_Pointer_UpRight, "Pointer_UpRight" },
-  { GDK_Pointer_DownLeft, "Pointer_DownLeft" },
-  { GDK_Pointer_DownRight, "Pointer_DownRight" },
-  { GDK_Pointer_Button_Dflt, "Pointer_Button_Dflt" },
-  { GDK_Pointer_Button1, "Pointer_Button1" },
-  { GDK_Pointer_Button2, "Pointer_Button2" },
-  { GDK_Pointer_Button3, "Pointer_Button3" },
-  { GDK_Pointer_Button4, "Pointer_Button4" },
-  { GDK_Pointer_Button5, "Pointer_Button5" },
-  { GDK_Pointer_DblClick_Dflt, "Pointer_DblClick_Dflt" },
-  { GDK_Pointer_DblClick1, "Pointer_DblClick1" },
-  { GDK_Pointer_DblClick2, "Pointer_DblClick2" },
-  { GDK_Pointer_DblClick3, "Pointer_DblClick3" },
-  { GDK_Pointer_DblClick4, "Pointer_DblClick4" },
-  { GDK_Pointer_DblClick5, "Pointer_DblClick5" },
-  { GDK_Pointer_Drag_Dflt, "Pointer_Drag_Dflt" },
-  { GDK_Pointer_Drag1, "Pointer_Drag1" },
-  { GDK_Pointer_Drag2, "Pointer_Drag2" },
-  { GDK_Pointer_Drag3, "Pointer_Drag3" },
-  { GDK_Pointer_Drag4, "Pointer_Drag4" },
-  { GDK_Pointer_EnableKeys, "Pointer_EnableKeys" },
-  { GDK_Pointer_Accelerate, "Pointer_Accelerate" },
-  { GDK_Pointer_DfltBtnNext, "Pointer_DfltBtnNext" },
-  { GDK_Pointer_DfltBtnPrev, "Pointer_DfltBtnPrev" },
-  { GDK_Pointer_Drag5, "Pointer_Drag5" },
-  { GDK_BackSpace, "BackSpace" },
-  { GDK_Tab, "Tab" },
-  { GDK_Linefeed, "Linefeed" },
-  { GDK_Clear, "Clear" },
-  { GDK_Return, "Return" },
-  { GDK_Pause, "Pause" },
-  { GDK_Scroll_Lock, "Scroll_Lock" },
-  { GDK_Sys_Req, "Sys_Req" },
-  { GDK_Escape, "Escape" },
-  { GDK_Multi_key, "Multi_key" },
-  { GDK_Kanji, "Kanji" },
-  { GDK_Muhenkan, "Muhenkan" },
-  { GDK_Henkan_Mode, "Henkan_Mode" },
-  { GDK_Henkan, "Henkan" },
-  { GDK_Romaji, "Romaji" },
-  { GDK_Hiragana, "Hiragana" },
-  { GDK_Katakana, "Katakana" },
-  { GDK_Hiragana_Katakana, "Hiragana_Katakana" },
-  { GDK_Zenkaku, "Zenkaku" },
-  { GDK_Hankaku, "Hankaku" },
-  { GDK_Zenkaku_Hankaku, "Zenkaku_Hankaku" },
-  { GDK_Touroku, "Touroku" },
-  { GDK_Massyo, "Massyo" },
-  { GDK_Kana_Lock, "Kana_Lock" },
-  { GDK_Kana_Shift, "Kana_Shift" },
-  { GDK_Eisu_Shift, "Eisu_Shift" },
-  { GDK_Eisu_toggle, "Eisu_toggle" },
-  { GDK_Hangul, "Hangul" },
-  { GDK_Hangul_Start, "Hangul_Start" },
-  { GDK_Hangul_End, "Hangul_End" },
-  { GDK_Hangul_Hanja, "Hangul_Hanja" },
-  { GDK_Hangul_Jamo, "Hangul_Jamo" },
-  { GDK_Hangul_Romaja, "Hangul_Romaja" },
-  { GDK_Codeinput, "Codeinput" },
-  { GDK_Kanji_Bangou, "Kanji_Bangou" },
-  { GDK_Hangul_Codeinput, "Hangul_Codeinput" },
-  { GDK_Hangul_Jeonja, "Hangul_Jeonja" },
-  { GDK_Hangul_Banja, "Hangul_Banja" },
-  { GDK_Hangul_PreHanja, "Hangul_PreHanja" },
-  { GDK_Hangul_PostHanja, "Hangul_PostHanja" },
-  { GDK_SingleCandidate, "SingleCandidate" },
-  { GDK_Hangul_SingleCandidate, "Hangul_SingleCandidate" },
-  { GDK_MultipleCandidate, "MultipleCandidate" },
-  { GDK_Zen_Koho, "Zen_Koho" },
-  { GDK_Hangul_MultipleCandidate, "Hangul_MultipleCandidate" },
-  { GDK_PreviousCandidate, "PreviousCandidate" },
-  { GDK_Mae_Koho, "Mae_Koho" },
-  { GDK_Hangul_PreviousCandidate, "Hangul_PreviousCandidate" },
-  { GDK_Hangul_Special, "Hangul_Special" },
-  { GDK_Home, "Home" },
-  { GDK_Left, "Left" },
-  { GDK_Up, "Up" },
-  { GDK_Right, "Right" },
-  { GDK_Down, "Down" },
-  { GDK_Prior, "Prior" },
-  { GDK_Page_Up, "Page_Up" },
-  { GDK_Next, "Next" },
-  { GDK_Page_Down, "Page_Down" },
-  { GDK_End, "End" },
-  { GDK_Begin, "Begin" },
-  { GDK_Select, "Select" },
-  { GDK_Print, "Print" },
-  { GDK_Execute, "Execute" },
-  { GDK_Insert, "Insert" },
-  { GDK_Undo, "Undo" },
-  { GDK_Redo, "Redo" },
-  { GDK_Menu, "Menu" },
-  { GDK_Find, "Find" },
-  { GDK_Cancel, "Cancel" },
-  { GDK_Help, "Help" },
-  { GDK_Break, "Break" },
-  { GDK_Mode_switch, "Mode_switch" },
-  { GDK_script_switch, "script_switch" },
-  { GDK_ISO_Group_Shift, "ISO_Group_Shift" },
-  { GDK_kana_switch, "kana_switch" },
-  { GDK_Arabic_switch, "Arabic_switch" },
-  { GDK_Greek_switch, "Greek_switch" },
-  { GDK_Hebrew_switch, "Hebrew_switch" },
-  { GDK_Hangul_switch, "Hangul_switch" },
-  { GDK_Num_Lock, "Num_Lock" },
-  { GDK_KP_Space, "KP_Space" },
-  { GDK_KP_Tab, "KP_Tab" },
-  { GDK_KP_Enter, "KP_Enter" },
-  { GDK_KP_F1, "KP_F1" },
-  { GDK_KP_F2, "KP_F2" },
-  { GDK_KP_F3, "KP_F3" },
-  { GDK_KP_F4, "KP_F4" },
-  { GDK_KP_Home, "KP_Home" },
-  { GDK_KP_Left, "KP_Left" },
-  { GDK_KP_Up, "KP_Up" },
-  { GDK_KP_Right, "KP_Right" },
-  { GDK_KP_Down, "KP_Down" },
-  { GDK_KP_Prior, "KP_Prior" },
-  { GDK_KP_Page_Up, "KP_Page_Up" },
-  { GDK_KP_Next, "KP_Next" },
-  { GDK_KP_Page_Down, "KP_Page_Down" },
-  { GDK_KP_End, "KP_End" },
-  { GDK_KP_Begin, "KP_Begin" },
-  { GDK_KP_Insert, "KP_Insert" },
-  { GDK_KP_Delete, "KP_Delete" },
-  { GDK_KP_Multiply, "KP_Multiply" },
-  { GDK_KP_Add, "KP_Add" },
-  { GDK_KP_Separator, "KP_Separator" },
-  { GDK_KP_Subtract, "KP_Subtract" },
-  { GDK_KP_Decimal, "KP_Decimal" },
-  { GDK_KP_Divide, "KP_Divide" },
-  { GDK_KP_0, "KP_0" },
-  { GDK_KP_1, "KP_1" },
-  { GDK_KP_2, "KP_2" },
-  { GDK_KP_3, "KP_3" },
-  { GDK_KP_4, "KP_4" },
-  { GDK_KP_5, "KP_5" },
-  { GDK_KP_6, "KP_6" },
-  { GDK_KP_7, "KP_7" },
-  { GDK_KP_8, "KP_8" },
-  { GDK_KP_9, "KP_9" },
-  { GDK_KP_Equal, "KP_Equal" },
-  { GDK_F1, "F1" },
-  { GDK_F2, "F2" },
-  { GDK_F3, "F3" },
-  { GDK_F4, "F4" },
-  { GDK_F5, "F5" },
-  { GDK_F6, "F6" },
-  { GDK_F7, "F7" },
-  { GDK_F8, "F8" },
-  { GDK_F9, "F9" },
-  { GDK_F10, "F10" },
-  { GDK_F11, "F11" },
-  { GDK_F12, "F12" },
-  { GDK_F13, "F13" },
-  { GDK_F14, "F14" },
-  { GDK_F15, "F15" },
-  { GDK_F16, "F16" },
-  { GDK_F17, "F17" },
-  { GDK_F18, "F18" },
-  { GDK_F19, "F19" },
-  { GDK_F20, "F20" },
-  { GDK_F21, "F21" },
-  { GDK_F22, "F22" },
-  { GDK_F23, "F23" },
-  { GDK_F24, "F24" },
-  { GDK_F25, "F25" },
-  { GDK_F26, "F26" },
-  { GDK_F27, "F27" },
-  { GDK_F28, "F28" },
-  { GDK_F29, "F29" },
-  { GDK_F30, "F30" },
-  { GDK_F31, "F31" },
-  { GDK_F32, "F32" },
-  { GDK_F33, "F33" },
-  { GDK_F34, "F34" },
-  { GDK_F35, "F35" },
-  { GDK_Shift_L, "Shift_L" },
-  { GDK_Shift_R, "Shift_R" },
-  { GDK_Control_L, "Control_L" },
-  { GDK_Control_R, "Control_R" },
-  { GDK_Caps_Lock, "Caps_Lock" },
-  { GDK_Shift_Lock, "Shift_Lock" },
-  { GDK_Meta_L, "Meta_L" },
-  { GDK_Meta_R, "Meta_R" },
-  { GDK_Alt_L, "Alt_L" },
-  { GDK_Alt_R, "Alt_R" },
-  { GDK_Super_L, "Super_L" },
-  { GDK_Super_R, "Super_R" },
-  { GDK_Hyper_L, "Hyper_L" },
-  { GDK_Hyper_R, "Hyper_R" },
-  { GDK_Delete, "Delete" },
-  { GDK_VoidSymbol, "VoidSymbol" }
-};
-
-#define GDK_NUM_KEYS (G_N_ELEMENTS (gdk_keys_by_keyval))
-
-
-static gint
-gdk_keys_keyval_compare (const void *pkey,
-                         const void *pbase)
-{
-  return (*(gint *) pkey) - ((struct gdk_key *) pbase)->keyval;
-}
-
-gchar *
-gdk_keyval_name (guint keyval)
-{
-  struct gdk_key *found;
-
-  /* these keyvals have two entries (PageUp/Prior | PageDown/Next) */
-  switch (keyval)
-    {
-    case GDK_Page_Up:
-      return "Page_Up";
-    case GDK_Page_Down:
-      return "Page_Down";
-    case GDK_KP_Page_Up:
-      return "KP_Page_Up";
-    case GDK_KP_Page_Down:
-      return "KP_Page_Down";
-    }
-
-  found = bsearch (&keyval, gdk_keys_by_keyval,
-                   GDK_NUM_KEYS, sizeof (struct gdk_key),
-                   gdk_keys_keyval_compare);
-
-  if (found)
-    return (gchar *) found->name;
-  else
-    return NULL;
-}
-
-static gint
-gdk_key_compare_by_name (const void *a,
-                         const void *b)
-{
-  return strcmp (((const struct gdk_key *) a)->name,
-                 ((const struct gdk_key *) b)->name);
-}
-
-static gint
-gdk_keys_name_compare (const void *pkey,
-                       const void *pbase)
-{
-  return strcmp ((const char *) pkey,
-                 ((const struct gdk_key *) pbase)->name);
-}
-
-guint
-gdk_keyval_from_name (const gchar *keyval_name)
-{
-  struct gdk_key *found;
-
-  g_return_val_if_fail (keyval_name != NULL, 0);
-
-  if (gdk_keys_by_name == NULL)
-    {
-      gdk_keys_by_name = g_new (struct gdk_key, GDK_NUM_KEYS);
-      
-      memcpy (gdk_keys_by_name, gdk_keys_by_keyval,
-              GDK_NUM_KEYS * sizeof (struct gdk_key));
-      
-      qsort (gdk_keys_by_name, GDK_NUM_KEYS, sizeof (struct gdk_key),
-             gdk_key_compare_by_name);
-    }
-  
-  found = bsearch (keyval_name, gdk_keys_by_name,
-                   GDK_NUM_KEYS, sizeof (struct gdk_key),
-                   gdk_keys_name_compare);
-  
-  if (found)
-    return found->keyval;
-  else
-    return GDK_VoidSymbol;
-}
-
-static void
-gdk_directfb_convert_modifiers (DFBInputDeviceModifierMask dfbmod,
-               DFBInputDeviceLockState    dfblock)
-{
-       if (dfbmod & DIMM_ALT)
-               _gdk_directfb_modifiers |= GDK_MOD1_MASK;
-       else
-               _gdk_directfb_modifiers &= ~GDK_MOD1_MASK;
-
-       if (dfbmod & DIMM_ALTGR)
-               _gdk_directfb_modifiers |= GDK_MOD2_MASK;
-       else
-               _gdk_directfb_modifiers &= ~GDK_MOD2_MASK;
-
-       if (dfbmod & DIMM_CONTROL)
-               _gdk_directfb_modifiers |= GDK_CONTROL_MASK;
-       else
-               _gdk_directfb_modifiers &= ~GDK_CONTROL_MASK;
-
-       if (dfbmod & DIMM_SHIFT)
-               _gdk_directfb_modifiers |= GDK_SHIFT_MASK;
-       else
-               _gdk_directfb_modifiers &= ~GDK_SHIFT_MASK;
-
-       if (dfblock & DILS_CAPS)
-               _gdk_directfb_modifiers |= GDK_LOCK_MASK;
-       else
-               _gdk_directfb_modifiers &= ~GDK_LOCK_MASK;
-}
-
-static guint
-gdk_directfb_translate_key (DFBInputDeviceKeyIdentifier key_id,
-               DFBInputDeviceKeySymbol     key_symbol)
-{
-       guint keyval = GDK_VoidSymbol;
-
-       /* special case numpad */
-       if (key_id >= DIKI_KP_DIV && key_id <= DIKI_KP_9)
-       {
-               switch (key_symbol)
-               {
-                       case DIKS_SLASH:         keyval = GDK_KP_Divide;    break;
-                       case DIKS_ASTERISK:      keyval = GDK_KP_Multiply;  break;
-                       case DIKS_PLUS_SIGN:     keyval = GDK_KP_Add;       break;
-                       case DIKS_MINUS_SIGN:    keyval = GDK_KP_Subtract;  break;
-                       case DIKS_ENTER:         keyval = GDK_KP_Enter;     break;
-                       case DIKS_SPACE:         keyval = GDK_KP_Space;     break;
-                       case DIKS_TAB:           keyval = GDK_KP_Tab;       break;
-                       case DIKS_EQUALS_SIGN:   keyval = GDK_KP_Equal;     break;
-                       case DIKS_COMMA:
-                       case DIKS_PERIOD:        keyval = GDK_KP_Decimal;   break;
-                       case DIKS_HOME:          keyval = GDK_KP_Home;      break;
-                       case DIKS_END:           keyval = GDK_KP_End;       break;
-                       case DIKS_PAGE_UP:       keyval = GDK_KP_Page_Up;   break;
-                       case DIKS_PAGE_DOWN:     keyval = GDK_KP_Page_Down; break;
-                       case DIKS_CURSOR_LEFT:   keyval = GDK_KP_Left;      break;
-                       case DIKS_CURSOR_RIGHT:  keyval = GDK_KP_Right;     break;
-                       case DIKS_CURSOR_UP:     keyval = GDK_KP_Up;        break;
-                       case DIKS_CURSOR_DOWN:   keyval = GDK_KP_Down;      break;
-                       case DIKS_BEGIN:         keyval = GDK_KP_Begin;     break;
-
-                       case DIKS_0 ... DIKS_9:
-                                                keyval = GDK_KP_0 + key_symbol - DIKS_0;
-                                                break;
-                       case DIKS_F1 ... DIKS_F4:
-                                                keyval = GDK_KP_F1 + key_symbol - DIKS_F1;
-                                                break;
-
-                       default:
-                                                break;
-               }
-       }
-       else
-       {
-               switch (DFB_KEY_TYPE (key_symbol))
-               {
-                       case DIKT_UNICODE:
-                               switch (key_symbol)
-                               {
-                                       case DIKS_NULL:       keyval = GDK_VoidSymbol; break;
-                                       case DIKS_BACKSPACE:  keyval = GDK_BackSpace;  break;
-                                       case DIKS_TAB:        keyval = GDK_Tab;        break;
-                                       case DIKS_RETURN:     keyval = GDK_Return;     break;
-                                       case DIKS_CANCEL:     keyval = GDK_Cancel;     break;
-                                       case DIKS_ESCAPE:     keyval = GDK_Escape;     break;
-                                       case DIKS_SPACE:      keyval = GDK_space;      break;
-                                       case DIKS_DELETE:     keyval = GDK_Delete;     break;
-
-                                       default:
-                                                             keyval = gdk_unicode_to_keyval (key_symbol);
-                                                             if (keyval & 0x01000000)
-                                                                     keyval = GDK_VoidSymbol;
-                               }
-                               break;
-
-                       case DIKT_SPECIAL:
-                               switch (key_symbol)
-                               {
-                                       case DIKS_CURSOR_LEFT:   keyval = GDK_Left;      break;
-                                       case DIKS_CURSOR_RIGHT:  keyval = GDK_Right;     break;
-                                       case DIKS_CURSOR_UP:     keyval = GDK_Up;        break;
-                                       case DIKS_CURSOR_DOWN:   keyval = GDK_Down;      break;
-                                       case DIKS_INSERT:        keyval = GDK_Insert;    break;
-                                       case DIKS_HOME:          keyval = GDK_Home;      break;
-                                       case DIKS_END:           keyval = GDK_End;       break;
-                                       case DIKS_PAGE_UP:       keyval = GDK_Page_Up;   break;
-                                       case DIKS_PAGE_DOWN:     keyval = GDK_Page_Down; break;
-                                       case DIKS_PRINT:         keyval = GDK_Print;     break;
-                                       case DIKS_PAUSE:         keyval = GDK_Pause;     break;
-                                       case DIKS_SELECT:        keyval = GDK_Select;    break;
-                                       case DIKS_CLEAR:         keyval = GDK_Clear;     break;
-                                       case DIKS_MENU:          keyval = GDK_Menu;      break;
-                                       case DIKS_HELP:          keyval = GDK_Help;      break;
-                                       case DIKS_NEXT:          keyval = GDK_Next;      break;
-                                       case DIKS_BEGIN:         keyval = GDK_Begin;     break;
-                                       case DIKS_BREAK:         keyval = GDK_Break;     break;
-                                       default:
-                                                                break;
-                               }
-                               break;
-
-                       case DIKT_FUNCTION:
-                               keyval = GDK_F1 + key_symbol - DIKS_F1;
-                               if (keyval > GDK_F35)
-                                       keyval = GDK_VoidSymbol;
-                               break;
-
-                       case DIKT_MODIFIER:
-                               switch (key_id)
-                               {
-                                       case DIKI_SHIFT_L:    keyval = GDK_Shift_L;     break;
-                                       case DIKI_SHIFT_R:    keyval = GDK_Shift_R;     break;
-                                       case DIKI_CONTROL_L:  keyval = GDK_Control_L;   break;
-                                       case DIKI_CONTROL_R:  keyval = GDK_Control_R;   break;
-                                       case DIKI_ALT_L:      keyval = GDK_Alt_L;       break;
-                                       case DIKI_ALT_R:      keyval = GDK_Alt_R;       break;
-                                       case DIKI_META_L:     keyval = GDK_Meta_L;      break;
-                                       case DIKI_META_R:     keyval = GDK_Meta_R;      break;
-                                       case DIKI_SUPER_L:    keyval = GDK_Super_L;     break;
-                                       case DIKI_SUPER_R:    keyval = GDK_Super_R;     break;
-                                       case DIKI_HYPER_L:    keyval = GDK_Hyper_L;     break;
-                                       case DIKI_HYPER_R:    keyval = GDK_Hyper_R;     break;
-                                       default:
-                                                             break;
-                               }
-                               break;
-
-                       case DIKT_LOCK:
-                               switch (key_symbol)
-                               {
-                                       case DIKS_CAPS_LOCK:    keyval = GDK_Caps_Lock;   break;
-                                       case DIKS_NUM_LOCK:     keyval = GDK_Num_Lock;    break;
-                                       case DIKS_SCROLL_LOCK:  keyval = GDK_Scroll_Lock; break;
-                                       default:
-                                                               break;
-                               }
-                               break;
-
-                       case DIKT_DEAD:
-                               /* dead keys are handled directly by directfb */
-                               break;
-
-                       case DIKT_CUSTOM:
-                               break;
-               }
-       }
-
-       return keyval;
-}
-
-       void
-_gdk_directfb_keyboard_init (void)
-{
-       DFBInputDeviceDescription desc;
-       gint i, n, length;
-       IDirectFBInputDevice   *keyboard=_gdk_display->keyboard;
-
-       if (!keyboard)
-               return;
-    if( directfb_keymap )    
-            return;
-
-       keyboard->GetDescription (keyboard, &desc);
-       _gdk_display->keymap=g_object_new (gdk_keymap_get_type (), NULL);
-
-       if (desc.min_keycode < 0 || desc.max_keycode < desc.min_keycode)
-               return;
-
-       directfb_min_keycode = desc.min_keycode;
-       directfb_max_keycode = desc.max_keycode;
-
-       length = directfb_max_keycode - desc.min_keycode + 1;
-
-
-       directfb_keymap = g_new0 (guint, 4 * length);
-
-       for (i = 0; i < length; i++)
-       {
-               DFBInputDeviceKeymapEntry  entry;
-
-               if (keyboard->GetKeymapEntry (keyboard,
-                                       i + desc.min_keycode, &entry) != DFB_OK)
-                       continue;
-               for (n = 0; n < 4; n++) {
-                       directfb_keymap[i * 4 + n] = 
-                               gdk_directfb_translate_key (entry.identifier, entry.symbols[n]);
-               }
-       }
-}
-
-       void
-_gdk_directfb_keyboard_exit (void)
-{
-       if (!directfb_keymap)
-               return;
-
-       g_free (directfb_keymap);
-       g_free(_gdk_display->keymap);
-       _gdk_display->keymap = NULL;
-       directfb_keymap = NULL;
-}
-
-void
-gdk_directfb_translate_key_event (DFBWindowEvent *dfb_event,
-                                  GdkEventKey    *event)
-{
-       gint  len;
-       gchar buf[6];
-
-       g_return_if_fail (dfb_event != NULL);
-       g_return_if_fail (event != NULL);
-
-       gdk_directfb_convert_modifiers (dfb_event->modifiers, dfb_event->locks);
-
-       event->state            = _gdk_directfb_modifiers;
-       event->group            = (dfb_event->modifiers & DIMM_ALTGR) ? 1 : 0;
-       event->hardware_keycode = dfb_event->key_code;
-       event->keyval           = gdk_directfb_translate_key (dfb_event->key_id,
-                       dfb_event->key_symbol);
-       /* If the device driver didn't send a key_code (happens with remote
-          controls), we try to find a suitable key_code by looking at the
-          default keymap. */
-       if (dfb_event->key_code == -1 && directfb_keymap)
-       {
-               gint i;
-
-               for (i = directfb_min_keycode; i <= directfb_max_keycode; i++)
-               {
-                       if (directfb_keymap[(i - directfb_min_keycode) * 4] == event->keyval)
-                       {
-                               event->hardware_keycode = i;
-                               break;
-                       }
-               }
-       } 
-
-       len = g_unichar_to_utf8 (dfb_event->key_symbol, buf);
-
-       event->string = g_strndup (buf, len);
-       event->length = len;
-}
-
-/**
- * gdk_keymap_get_caps_lock_state:
- * @keymap: a #GdkKeymap
- *
- * Returns whether the Caps Lock modifer is locked.
- *
- * Returns: %TRUE if Caps Lock is on
- *
- * Since: 2.16
- */
-gboolean
-gdk_keymap_get_caps_lock_state (GdkKeymap *keymap)
-{
-  IDirectFBInputDevice *keyboard = _gdk_display->keyboard;
-
-  if (keyboard)
-    {
-      DFBInputDeviceLockState  state;
-
-      if (keyboard->GetLockState (keyboard, &state) == DFB_OK)
-        return ((state & DILS_CAPS) != 0);
-    }
-
-  return FALSE;
-}
-
-/**
- * gdk_keymap_get_num_lock_state:
- * @keymap: a #GdkKeymap
- *
- * Returns whether the Num Lock modifer is locked.
- *
- * Returns: %TRUE if Num Lock is on
- *
- * Since: 3.0
- */
-gboolean
-gdk_keymap_get_num_lock_state (GdkKeymap *keymap)
-{
-  /* FIXME: Can we implement this? */
-
-  return FALSE;
-}
-
-/**
- * gdk_keymap_get_entries_for_keycode:
- * @keymap: a #GdkKeymap or %NULL to use the default keymap
- * @hardware_keycode: a keycode
- * @keys: return location for array of #GdkKeymapKey, or NULL
- * @keyvals: return location for array of keyvals, or NULL
- * @n_entries: length of @keys and @keyvals
- *
- * Returns the keyvals bound to @hardware_keycode.
- * The Nth #GdkKeymapKey in @keys is bound to the Nth
- * keyval in @keyvals. Free the returned arrays with g_free().
- * When a keycode is pressed by the user, the keyval from
- * this list of entries is selected by considering the effective
- * keyboard group and level. See gdk_keymap_translate_keyboard_state().
- *
- * Returns: %TRUE if there were any entries
- **/
-gboolean
-gdk_keymap_get_entries_for_keycode (GdkKeymap     *keymap,
-               guint          hardware_keycode,
-               GdkKeymapKey **keys,
-               guint        **keyvals,
-               gint          *n_entries)
-{
-       gint num = 0;
-       gint i, j;
-       gint index;
-
-       index = (hardware_keycode - directfb_min_keycode) * 4;
-
-       if (directfb_keymap && (hardware_keycode >= directfb_min_keycode && 
-                               hardware_keycode <= directfb_max_keycode))
-       {
-               for (i = 0; i < 4; i++)
-                       if (directfb_keymap[index + i] != GDK_VoidSymbol)
-                               num++;
-       }
-
-       if (keys)
-       {
-               *keys = g_new (GdkKeymapKey, num);
-
-               for (i = 0, j = 0; num > 0 && i < 4; i++)
-                       if (directfb_keymap[index + i] != GDK_VoidSymbol)
-                       {
-                               (*keys)[j].keycode = hardware_keycode;
-                               (*keys)[j].level   = j % 2;
-                               (*keys)[j].group   = j > DIKSI_BASE_SHIFT ? 1 : 0;
-                               j++;
-                       }
-       }
-       if (keyvals)
-       {
-               *keyvals = g_new (guint, num);
-
-               for (i = 0, j = 0; num > 0 && i < 4; i++)
-                       if (directfb_keymap[index + i] != GDK_VoidSymbol)
-                       {
-                               (*keyvals)[j] = directfb_keymap[index + i];
-                               j++;
-                       }
-       }
-
-       if (n_entries)
-               *n_entries = num;
-
-       return (num > 0);
-}
-
-static inline void
-append_keymap_key (GArray *array,
-               guint   keycode,
-               gint    group,
-               gint    level)
-{
-       GdkKeymapKey key = { keycode, group, level };
-
-       g_array_append_val (array, key);
-}
-
-/**
- * gdk_keymap_get_entries_for_keyval:
- * @keymap: a #GdkKeymap, or %NULL to use the default keymap
- * @keyval: a keyval, such as %GDK_a, %GDK_Up, %GDK_Return, etc.
- * @keys: return location for an array of #GdkKeymapKey
- * @n_keys: return location for number of elements in returned array
- * 
- * Obtains a list of keycode/group/level combinations that will
- * generate @keyval. Groups and levels are two kinds of keyboard mode;
- * in general, the level determines whether the top or bottom symbol
- * on a key is used, and the group determines whether the left or
- * right symbol is used. On US keyboards, the shift key changes the
- * keyboard level, and there are no groups. A group switch key might
- * convert a keyboard between Hebrew to English modes, for example.
- * #GdkEventKey contains a %group field that indicates the active
- * keyboard group. The level is computed from the modifier mask.
- * The returned array should be freed
- * with g_free().
- *
- * Return value: %TRUE if keys were found and returned
- **/
-gboolean
-gdk_keymap_get_entries_for_keyval (GdkKeymap     *keymap,
-               guint          keyval,
-               GdkKeymapKey **keys,
-               gint          *n_keys)
-{
-       GArray *retval;
-       gint    i, j;
-
-       g_return_val_if_fail (keys != NULL, FALSE);
-       g_return_val_if_fail (n_keys != NULL, FALSE);
-       g_return_val_if_fail (keyval != GDK_VoidSymbol, FALSE);
-
-       retval = g_array_new (FALSE, FALSE, sizeof (GdkKeymapKey));
-
-       for (i = directfb_min_keycode;
-                       directfb_keymap && i <= directfb_max_keycode;
-                       i++)
-       {
-               gint index = i - directfb_min_keycode;
-
-               for (j = 0; j < 4; j++)
-               {
-                       if (directfb_keymap[index * 4 + j] == keyval)
-                               append_keymap_key (retval, i, j % 2, j > DIKSI_BASE_SHIFT ? 1 : 0);
-               }
-       }
-
-       if (retval->len > 0)
-       {
-               *keys = (GdkKeymapKey *) retval->data;
-               *n_keys = retval->len;
-       }
-       else
-       {
-               *keys = NULL;
-               *n_keys = 0;
-       }
-
-       g_array_free (retval, retval->len > 0 ? FALSE : TRUE);
-
-       return (*n_keys > 0);
-}
-
-gboolean
-gdk_keymap_translate_keyboard_state (GdkKeymap       *keymap,
-               guint            keycode,
-               GdkModifierType  state,
-               gint             group,
-               guint           *keyval,
-               gint            *effective_group,
-               gint            *level,
-               GdkModifierType *consumed_modifiers)
-{
-       if (directfb_keymap &&
-                       (keycode >= directfb_min_keycode && keycode <= directfb_max_keycode) &&
-                       (group == 0 || group == 1))
-       {
-               gint index = (keycode - directfb_min_keycode) * 4;
-               gint i =     (state & GDK_SHIFT_MASK) ? 1 : 0;
-
-               if (directfb_keymap[index + i + 2 * group] != GDK_VoidSymbol)
-               {
-                       if (keyval)
-                               *keyval = directfb_keymap[index + i + 2 * group];
-
-                       if (group && directfb_keymap[index + i] == *keyval)
-                       {
-                               if (effective_group)
-                                       *effective_group = 0;
-                if(consumed_modifiers)
-                                   *consumed_modifiers = 0;
-                       }
-                       else
-                       {
-                               if (effective_group)
-                                       *effective_group = group;
-                if(consumed_modifiers)
-                                   *consumed_modifiers = GDK_MOD2_MASK;
-                       }
-                       if (level)
-                               *level = i;
-
-                       if (i && directfb_keymap[index + 2 * *effective_group] != *keyval)
-                if(consumed_modifiers)
-                                   *consumed_modifiers |= GDK_SHIFT_MASK;
-
-                       return TRUE;
-               }
-       }
-       if (keyval)
-               *keyval             = 0;
-       if (effective_group)
-               *effective_group    = 0;
-       if (level)
-               *level              = 0;
-    if(consumed_modifiers)
-           *consumed_modifiers = 0;
-
-       return FALSE;
-}
-
-       GdkKeymap*
-gdk_keymap_get_for_display (GdkDisplay *display)
-{
-       if( display == NULL ) return NULL;
-       g_assert(GDK_IS_DISPLAY_DFB(display));
-       GdkDisplayDFB *gdisplay = GDK_DISPLAY_DFB(display);
-       g_assert( gdisplay->keymap != NULL);
-       return gdisplay->keymap;
-}
-
-       PangoDirection
-gdk_keymap_get_direction (GdkKeymap *keymap)
-{
-       return PANGO_DIRECTION_NEUTRAL;
-}
-
-/**
- * gdk_keymap_lookup_key:
- * @keymap: a #GdkKeymap or %NULL to use the default keymap
- * @key: a #GdkKeymapKey with keycode, group, and level initialized
- *
- * Looks up the keyval mapped to a keycode/group/level triplet.
- * If no keyval is bound to @key, returns 0. For normal user input,
- * you want to use gdk_keymap_translate_keyboard_state() instead of
- * this function, since the effective group/level may not be
- * the same as the current keyboard state.
- *
- * Return value: a keyval, or 0 if none was mapped to the given @key
- **/
-guint
-gdk_keymap_lookup_key (GdkKeymap          *keymap,
-               const GdkKeymapKey *key)
-{
-       g_warning("gdk_keymap_lookup_key unimplemented \n");    
-       return 0;
-}
-
-void
-gdk_keymap_add_virtual_modifiers (GdkKeymap       *keymap,
-                                  GdkModifierType *state)
-{
-       g_warning ("gdk_keymap_add_virtual_modifiers unimplemented \n");
-}
-
-gboolean
-gdk_keymap_map_virtual_modifiers (GdkKeymap       *keymap,
-                                  GdkModifierType *state)
-{
-  g_warning ("gdk_keymap_map_virtual_modifiers unimplemented \n");
-
-  return TRUE;
-}
diff --git a/gdk/directfb/gdkmain-directfb.c b/gdk/directfb/gdkmain-directfb.c
deleted file mode 100644 (file)
index 8883f42..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * Copyright (C) 1998-1999 Tor Lillqvist
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-/*
- Main entry point for 2.6 seems to be open_display so 
- most stuff in main is moved over to gdkdisplay-directfb.c
- I'll move stub functions here that make no sense for directfb
- and true globals
- Michael Emmel
-*/
-
-#include "config.h"
-#include <string.h> 
-#include <stdlib.h> 
-#include "gdk.h"
-
-#include "gdkdisplay.h"
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkinternals.h"
-
-#include "gdkinput-directfb.h"
-
-#include "gdkintl.h"
-
-
-void
-_gdk_windowing_init (void)
-{
-  /* Not that usable called before parse_args
-   */
-}
-
-void
-_gdk_windowing_display_set_sm_client_id (GdkDisplay *display,const gchar *sm_client_id)
-{
-  g_message ("gdk_set_sm_client_id() is unimplemented.");
-}
-
-
-void
-_gdk_windowing_exit (void)
-{
-  if (_gdk_display->buffer)
-    _gdk_display->buffer->Release (_gdk_display->buffer);
-
-  _gdk_directfb_keyboard_exit ();
-
-  if (_gdk_display->keyboard)
-    _gdk_display->keyboard->Release (_gdk_display->keyboard);
-
-  _gdk_display->layer->Release (_gdk_display->layer);
-
-   _gdk_display->directfb->Release (_gdk_display->directfb);
-
-  g_free (_gdk_display);
-  _gdk_display = NULL;
-}
-
-gchar *
-gdk_get_display (void)
-{
-  return g_strdup (gdk_display_get_name (gdk_display_get_default ()));
-}
-
-
-/* utils */
-static const guint type_masks[] =
-{
-  GDK_STRUCTURE_MASK,        /* GDK_DELETE            =  0, */
-  GDK_STRUCTURE_MASK,        /* GDK_DESTROY           =  1, */
-  GDK_EXPOSURE_MASK,         /* GDK_EXPOSE            =  2, */
-  GDK_POINTER_MOTION_MASK,   /* GDK_MOTION_NOTIFY     =  3, */
-  GDK_BUTTON_PRESS_MASK,     /* GDK_BUTTON_PRESS      =  4, */
-  GDK_BUTTON_PRESS_MASK,     /* GDK_2BUTTON_PRESS     =  5, */
-  GDK_BUTTON_PRESS_MASK,     /* GDK_3BUTTON_PRESS     =  6, */
-  GDK_BUTTON_RELEASE_MASK,   /* GDK_BUTTON_RELEASE    =  7, */
-  GDK_KEY_PRESS_MASK,        /* GDK_KEY_PRESS         =  8, */
-  GDK_KEY_RELEASE_MASK,      /* GDK_KEY_RELEASE       =  9, */
-  GDK_ENTER_NOTIFY_MASK,     /* GDK_ENTER_NOTIFY      = 10, */
-  GDK_LEAVE_NOTIFY_MASK,     /* GDK_LEAVE_NOTIFY      = 11, */
-  GDK_FOCUS_CHANGE_MASK,     /* GDK_FOCUS_CHANGE      = 12, */
-  GDK_STRUCTURE_MASK,        /* GDK_CONFIGURE         = 13, */
-  GDK_VISIBILITY_NOTIFY_MASK,/* GDK_MAP               = 14, */
-  GDK_VISIBILITY_NOTIFY_MASK,/* GDK_UNMAP             = 15, */
-  GDK_PROPERTY_CHANGE_MASK,  /* GDK_PROPERTY_NOTIFY   = 16, */
-  GDK_PROPERTY_CHANGE_MASK,  /* GDK_SELECTION_CLEAR   = 17, */
-  GDK_PROPERTY_CHANGE_MASK,  /* GDK_SELECTION_REQUEST = 18, */
-  GDK_PROPERTY_CHANGE_MASK,  /* GDK_SELECTION_NOTIFY  = 19, */
-  GDK_PROXIMITY_IN_MASK,     /* GDK_PROXIMITY_IN      = 20, */
-  GDK_PROXIMITY_OUT_MASK,    /* GDK_PROXIMITY_OUT     = 21, */
-  GDK_ALL_EVENTS_MASK,       /* GDK_DRAG_ENTER        = 22, */
-  GDK_ALL_EVENTS_MASK,       /* GDK_DRAG_LEAVE        = 23, */
-  GDK_ALL_EVENTS_MASK,       /* GDK_DRAG_MOTION       = 24, */
-  GDK_ALL_EVENTS_MASK,       /* GDK_DRAG_STATUS       = 25, */
-  GDK_ALL_EVENTS_MASK,       /* GDK_DROP_START        = 26, */
-  GDK_ALL_EVENTS_MASK,       /* GDK_DROP_FINISHED     = 27, */
-  GDK_ALL_EVENTS_MASK,       /* GDK_CLIENT_EVENT      = 28, */
-  GDK_VISIBILITY_NOTIFY_MASK,/* GDK_VISIBILITY_NOTIFY = 29, */
-  GDK_EXPOSURE_MASK,         /* GDK_NO_EXPOSE         = 30, */
-  GDK_SCROLL_MASK            /* GDK_SCROLL            = 31  */
-};
-
-GdkWindow *
-gdk_directfb_other_event_window (GdkWindow    *window,
-                                 GdkEventType  type)
-{
-  guint32    evmask;
-  GdkWindow *w;
-
-  w = window;
-  while (w != _gdk_parent_root)
-    {
-      /* Huge hack, so that we don't propagate events to GtkWindow->frame */
-      if ((w != window) &&
-          (GDK_WINDOW_OBJECT (w)->window_type != GDK_WINDOW_CHILD) &&
-          (g_object_get_data (G_OBJECT (w), "gdk-window-child-handler")))
-        break;
-
-      evmask = GDK_WINDOW_OBJECT (w)->event_mask;
-
-      if (evmask & type_masks[type])
-        return w;
-
-      w = gdk_window_get_parent (w);
-    }
-
-  return NULL;
-}
-
-GdkWindow *
-gdk_directfb_pointer_event_window (GdkWindow    *window,
-                                   GdkEventType  type)
-{
-  guint            evmask;
-  GdkModifierType  mask;
-  GdkWindow       *w;
-
-  gdk_directfb_mouse_get_info (NULL, NULL, &mask);
-
-  if (_gdk_directfb_pointer_grab_window && !_gdk_directfb_pointer_grab_owner_events )
-    {
-      evmask = _gdk_directfb_pointer_grab_events;
-
-      if (evmask & (GDK_BUTTON1_MOTION_MASK |
-                    GDK_BUTTON2_MOTION_MASK |
-                    GDK_BUTTON3_MOTION_MASK))
-        {
-          if (((mask & GDK_BUTTON1_MASK) &&
-               (evmask & GDK_BUTTON1_MOTION_MASK)) ||
-              ((mask & GDK_BUTTON2_MASK) &&
-               (evmask & GDK_BUTTON2_MOTION_MASK)) ||
-              ((mask & GDK_BUTTON3_MASK) &&
-               (evmask & GDK_BUTTON3_MOTION_MASK)))
-            evmask |= GDK_POINTER_MOTION_MASK;
-        }
-
-      if (evmask & type_masks[type]) {
-
-        if( _gdk_directfb_pointer_grab_owner_events ) {
-        return _gdk_directfb_pointer_grab_window;
-        }else {
-                GdkWindowObject *obj= GDK_WINDOW_OBJECT(window);
-                while (obj != NULL && 
-                    obj != GDK_WINDOW_OBJECT(_gdk_directfb_pointer_grab_window)) {
-                    obj = (GdkWindowObject *)obj->parent;
-                }
-                if( obj ==GDK_WINDOW_OBJECT(_gdk_directfb_pointer_grab_window) ) {
-                    return  window;
-                }else {
-                    //was not  child of the grab window so return the grab window
-                    return _gdk_directfb_pointer_grab_window;
-                }
-         }
-        }
-    }
-
-  w = window;
-  while (w != _gdk_parent_root)
-    {
-      /* Huge hack, so that we don't propagate events to GtkWindow->frame */
-      if ((w != window) &&
-          (GDK_WINDOW_OBJECT (w)->window_type != GDK_WINDOW_CHILD) &&
-          (g_object_get_data (G_OBJECT (w), "gdk-window-child-handler")))
-        break;
-
-      evmask = GDK_WINDOW_OBJECT (w)->event_mask;
-
-      if (evmask & (GDK_BUTTON1_MOTION_MASK |
-                    GDK_BUTTON2_MOTION_MASK |
-                    GDK_BUTTON3_MOTION_MASK))
-        {
-          if (((mask & GDK_BUTTON1_MASK) &&
-               (evmask & GDK_BUTTON1_MOTION_MASK)) ||
-              ((mask & GDK_BUTTON2_MASK) &&
-               (evmask & GDK_BUTTON2_MOTION_MASK)) ||
-              ((mask & GDK_BUTTON3_MASK) &&
-               (evmask & GDK_BUTTON3_MOTION_MASK)))
-            evmask |= GDK_POINTER_MOTION_MASK;
-        }
-
-      if (evmask & type_masks[type])
-        return w;
-
-      w = gdk_window_get_parent (w);
-    }
-
-  return NULL;
-}
-
-GdkWindow *
-gdk_directfb_keyboard_event_window (GdkWindow    *window,
-                                    GdkEventType  type)
-{
-  guint32    evmask;
-  GdkWindow *w;
-
-  if (_gdk_directfb_keyboard_grab_window &&
-      !_gdk_directfb_keyboard_grab_owner_events)
-    {
-      return _gdk_directfb_keyboard_grab_window;
-    }
-
-  w = window;
-  while (w != _gdk_parent_root)
-    {
-      /* Huge hack, so that we don't propagate events to GtkWindow->frame */
-      if ((w != window) &&
-          (GDK_WINDOW_OBJECT (w)->window_type != GDK_WINDOW_CHILD) &&
-          (g_object_get_data (G_OBJECT (w), "gdk-window-child-handler")))
-        break;
-
-      evmask = GDK_WINDOW_OBJECT (w)->event_mask;
-
-      if (evmask & type_masks[type])
-        return w;
-
-      w = gdk_window_get_parent (w);
-    }
-   return w;
-}
-
-
-GdkEvent *
-gdk_directfb_event_make (GdkWindow    *window,
-                         GdkEventType  type)
-{
-  GdkEvent *event    = gdk_event_new (GDK_NOTHING);
-  guint32   the_time = gdk_directfb_get_time ();
-  event->any.type       = type;
-  event->any.window     = g_object_ref (window);
-  event->any.send_event = FALSE;
-
-  switch (type)
-    {
-    case GDK_MOTION_NOTIFY:
-      event->motion.time = the_time;
-      event->motion.axes = NULL;
-      break;
-    case GDK_BUTTON_PRESS:
-    case GDK_2BUTTON_PRESS:
-    case GDK_3BUTTON_PRESS:
-    case GDK_BUTTON_RELEASE:
-      event->button.time = the_time;
-      event->button.axes = NULL;
-      break;
-    case GDK_KEY_PRESS:
-    case GDK_KEY_RELEASE:
-      event->key.time = the_time;
-      break;
-    case GDK_ENTER_NOTIFY:
-    case GDK_LEAVE_NOTIFY:
-      event->crossing.time = the_time;
-      break;
-    case GDK_PROPERTY_NOTIFY:
-      event->property.time = the_time;
-      break;
-    case GDK_SELECTION_CLEAR:
-    case GDK_SELECTION_REQUEST:
-    case GDK_SELECTION_NOTIFY:
-      event->selection.time = the_time;
-      break;
-    case GDK_PROXIMITY_IN:
-    case GDK_PROXIMITY_OUT:
-      event->proximity.time = the_time;
-      break;
-    case GDK_DRAG_ENTER:
-    case GDK_DRAG_LEAVE:
-    case GDK_DRAG_MOTION:
-    case GDK_DRAG_STATUS:
-    case GDK_DROP_START:
-    case GDK_DROP_FINISHED:
-      event->dnd.time = the_time;
-      break;
-    case GDK_SCROLL:
-      event->scroll.time = the_time;
-      break;
-    case GDK_FOCUS_CHANGE:
-    case GDK_CONFIGURE:
-    case GDK_MAP:
-    case GDK_UNMAP:
-    case GDK_CLIENT_EVENT:
-    case GDK_VISIBILITY_NOTIFY:
-    case GDK_NO_EXPOSE:
-    case GDK_DELETE:
-    case GDK_DESTROY:
-    case GDK_EXPOSE:
-    default:
-      break;
-    }
-
-  _gdk_event_queue_append (gdk_display_get_default (), event);
-
-  return event;
-}
-
-void
-gdk_error_trap_push (void)
-{
-}
-
-gint
-gdk_error_trap_pop (void)
-{
-  return 0;
-}
-
-GdkGrabStatus
-gdk_keyboard_grab (GdkWindow *window,
-                   gint       owner_events,
-                   guint32    time) 
-{
-  return gdk_directfb_keyboard_grab (gdk_display_get_default(),
-                                     window,
-                                     owner_events,
-                                     time);
-}
-
-/*
- *--------------------------------------------------------------
- * gdk_pointer_grab
- *
- *   Grabs the pointer to a specific window
- *
- * Arguments:
- *   "window" is the window which will receive the grab
- *   "owner_events" specifies whether events will be reported as is,
- *     or relative to "window"
- *   "event_mask" masks only interesting events
- *   "confine_to" limits the cursor movement to the specified window
- *   "cursor" changes the cursor for the duration of the grab
- *   "time" specifies the time
- *
- * Results:
- *
- * Side effects:
- *   requires a corresponding call to gdk_pointer_ungrab
- *
- *--------------------------------------------------------------
- */
-
-
-GdkGrabStatus
-_gdk_windowing_pointer_grab (GdkWindow    *window,
-                             GdkWindow    *native,
-                             gboolean      owner_events,
-                             GdkEventMask  event_mask,
-                             GdkWindow    *confine_to,
-                             GdkCursor    *cursor,
-                             guint32       time)
-{
-  g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
-  g_return_val_if_fail (confine_to == NULL || GDK_IS_WINDOW (confine_to), 0);
-
-  _gdk_display_add_pointer_grab (&_gdk_display->parent,
-                                 window,
-                                 native,
-                                 owner_events,
-                                 event_mask,
-                                 0,
-                                 time,
-                                 FALSE);
-
-  return GDK_GRAB_SUCCESS;
-}
diff --git a/gdk/directfb/gdkpixmap-directfb.c b/gdk/directfb/gdkpixmap-directfb.c
deleted file mode 100644 (file)
index fd84efd..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * Copyright (C) 1998-1999 Tor Lillqvist
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkinternals.h"
-
-#include "gdkpixmap.h"
-
-
-static void gdk_pixmap_impl_directfb_init       (GdkPixmapImplDirectFB      *pixmap);
-static void gdk_pixmap_impl_directfb_class_init (GdkPixmapImplDirectFBClass *klass);
-static void gdk_pixmap_impl_directfb_finalize   (GObject                    *object);
-
-
-static gpointer parent_class = NULL;
-
-
-GType
-gdk_pixmap_impl_directfb_get_type (void)
-{
-  static GType object_type = 0;
-
-  if (!object_type)
-    {
-      const GTypeInfo object_info =
-        {
-          sizeof (GdkPixmapImplDirectFBClass),
-          (GBaseInitFunc) NULL,
-          (GBaseFinalizeFunc) NULL,
-          (GClassInitFunc) gdk_pixmap_impl_directfb_class_init,
-          NULL,           /* class_finalize */
-          NULL,           /* class_data */
-          sizeof (GdkPixmapImplDirectFB),
-          0,              /* n_preallocs */
-          (GInstanceInitFunc) gdk_pixmap_impl_directfb_init,
-        };
-
-      object_type = g_type_register_static (GDK_TYPE_DRAWABLE_IMPL_DIRECTFB,
-                                            "GdkPixmapImplDirectFB",
-                                            &object_info, 0);
-    }
-
-  return object_type;
-}
-
-GType
-_gdk_pixmap_impl_get_type (void)
-{
-  return gdk_pixmap_impl_directfb_get_type ();
-}
-
-static void
-gdk_pixmap_impl_directfb_init (GdkPixmapImplDirectFB *impl)
-{
-  GdkDrawableImplDirectFB *draw_impl = GDK_DRAWABLE_IMPL_DIRECTFB (impl);
-  draw_impl->width  = 1;
-  draw_impl->height = 1;
-}
-
-static void
-gdk_pixmap_impl_directfb_class_init (GdkPixmapImplDirectFBClass *klass)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
-  parent_class = g_type_class_peek_parent (klass);
-
-  object_class->finalize = gdk_pixmap_impl_directfb_finalize;
-}
-
-static void
-gdk_pixmap_impl_directfb_finalize (GObject *object)
-{
-  if (G_OBJECT_CLASS (parent_class)->finalize)
-    G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-GdkPixmap*
-_gdk_pixmap_new (GdkDrawable *drawable,
-                 gint       width,
-                 gint       height,
-                 gint       depth)
-{
-  DFBSurfacePixelFormat    format;
-  IDirectFBSurface        *surface;
-  GdkPixmap               *pixmap;
-  GdkDrawableImplDirectFB *draw_impl;
-
-  g_return_val_if_fail (drawable == NULL || GDK_IS_DRAWABLE (drawable), NULL);
-  g_return_val_if_fail (drawable != NULL || depth != -1, NULL);
-  g_return_val_if_fail (width > 0 && height > 0, NULL);
-
-  if (!drawable)
-    drawable = _gdk_parent_root;
-
-  if (GDK_IS_WINDOW (drawable) && GDK_WINDOW_DESTROYED (drawable))
-    return NULL;
-
-  GDK_NOTE (MISC, g_print ("gdk_pixmap_new: %dx%dx%d\n",
-                           width, height, depth));
-
-  if (depth == -1)
-    {
-      draw_impl =
-        GDK_DRAWABLE_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (drawable)->impl);
-
-      g_return_val_if_fail (draw_impl != NULL, NULL);
-
-      draw_impl->surface->GetPixelFormat (draw_impl->surface, &format);
-      depth = DFB_BITS_PER_PIXEL (format);
-    }
-  else
-    {
-      switch (depth)
-        {
-        case  1:
-          format = DSPF_A8;
-          break;
-        case  8:
-          format = DSPF_LUT8;
-          break;
-        case 15:
-          format = DSPF_ARGB1555;
-          break;
-        case 16:
-          format = DSPF_RGB16;
-          break;
-        case 24:
-          format = DSPF_RGB24;
-          break;
-        case 32:
-          format = DSPF_RGB32;
-          break;
-        default:
-          g_message ("unimplemented %s for depth %d", G_STRFUNC, depth);
-          return NULL;
-        }
-    }
-
-  if( !(surface = 
-       gdk_display_dfb_create_surface(_gdk_display,format,width,height) )) { 
-    g_assert( surface != NULL);
-    return NULL;
-  }
-
-  pixmap = g_object_new (gdk_pixmap_get_type (), NULL);
-  draw_impl = GDK_DRAWABLE_IMPL_DIRECTFB (GDK_PIXMAP_OBJECT (pixmap)->impl);
-  draw_impl->surface = surface;
-  surface->Clear (surface, 0x0, 0x0, 0x0, 0x0);
-  surface->GetSize (surface, &draw_impl->width, &draw_impl->height);
-  surface->GetPixelFormat (surface, &draw_impl->format);
-
-  draw_impl->abs_x = draw_impl->abs_y = 0;
-
-  GDK_PIXMAP_OBJECT (pixmap)->depth = depth;
-
-  return pixmap;
-}
-
-GdkPixmap*
-gdk_pixmap_foreign_new (GdkNativeWindow anid)
-{
-  g_warning(" gdk_pixmap_foreign_new unsuporrted \n");
-  return NULL;
-}
-
-GdkPixmap*
-gdk_pixmap_foreign_new_for_display (GdkDisplay *display, GdkNativeWindow anid)
-{
-  return gdk_pixmap_foreign_new(anid);
-}
-
-GdkPixmap*
-gdk_pixmap_foreign_new_for_screen (GdkScreen       *screen,
-                                   GdkNativeWindow  anid,
-                                   gint             width,
-                                   gint             height,
-                                   gint             depth)
-{
-  /*Use the root drawable for now since only one screen */
-  return gdk_pixmap_new(NULL,width,height,depth);
-}
-
-
-GdkPixmap*
-gdk_pixmap_lookup (GdkNativeWindow anid)
-{
-  g_warning(" gdk_pixmap_lookup unsuporrted \n");
-  return NULL;
-}
-
-GdkPixmap* gdk_pixmap_lookup_for_display (GdkDisplay *display,GdkNativeWindow anid)
-{
-  return gdk_pixmap_lookup (anid);
-}
diff --git a/gdk/directfb/gdkprivate-directfb.h b/gdk/directfb/gdkprivate-directfb.h
deleted file mode 100644 (file)
index bc35125..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#ifndef __GDK_PRIVATE_DIRECTFB_H__
-#define __GDK_PRIVATE_DIRECTFB_H__
-
-//#include <gdk/gdk.h>
-#include <gdk/gdkprivate.h>
-#include "gdkinternals.h"
-#include "gdkcursor.h"
-#include "gdkdisplay-directfb.h"
-#include <cairo.h>
-
-#include <string.h>
-
-#include <directfb_util.h>
-
-
-#define GDK_TYPE_DRAWABLE_IMPL_DIRECTFB       (gdk_drawable_impl_directfb_get_type ())
-#define GDK_DRAWABLE_IMPL_DIRECTFB(object)    (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DRAWABLE_IMPL_DIRECTFB, GdkDrawableImplDirectFB))
-#define GDK_IS_DRAWABLE_IMPL_DIRECTFB(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DRAWABLE_IMPL_DIRECTFB))
-
-#define GDK_TYPE_WINDOW_IMPL_DIRECTFB         (gdk_window_impl_directfb_get_type ())
-#define GDK_WINDOW_IMPL_DIRECTFB(object)      (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WINDOW_IMPL_DIRECTFB, GdkWindowImplDirectFB))
-#define GDK_IS_WINDOW_IMPL_DIRECTFB(object)   (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WINDOW_IMPL_DIRECTFB))
-
-#define GDK_TYPE_PIXMAP_IMPL_DIRECTFB         (gdk_pixmap_impl_directfb_get_type ())
-#define GDK_PIXMAP_IMPL_DIRECTFB(object)      (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_PIXMAP_IMPL_DIRECTFB, GdkPixmapImplDirectFB))
-#define GDK_IS_PIXMAP_IMPL_DIRECTFB(object)   (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_PIXMAP_IMPL_DIRECTFB))
-
-
-typedef struct _GdkDrawableImplDirectFB GdkDrawableImplDirectFB;
-typedef struct _GdkWindowImplDirectFB   GdkWindowImplDirectFB;
-typedef struct _GdkPixmapImplDirectFB   GdkPixmapImplDirectFB;
-
-
-struct _GdkDrawableImplDirectFB
-{
-  GdkDrawable             parent_object;
-
-  GdkDrawable            *wrapper;
-
-  gboolean                buffered;
-
-  cairo_region_t               paint_region;
-  gint                    paint_depth;
-  gint                    width;
-  gint                    height;
-  gint                    abs_x;
-  gint                    abs_y;
-
-  cairo_region_t               clip_region;
-
-  GdkColormap            *colormap;
-
-  IDirectFBSurface       *surface;
-  DFBSurfacePixelFormat   format;
-  cairo_surface_t *  cairo_surface;
-
-};
-
-typedef struct
-{
-  GdkDrawableClass  parent_class;
-} GdkDrawableImplDirectFBClass;
-
-GType      gdk_drawable_impl_directfb_get_type (void);
-
-GdkEvent *  gdk_directfb_event_make     (GdkWindow               *window,
-                                         GdkEventType             type);
-
-
-/*
- * Pixmap
- */
-
-struct _GdkPixmapImplDirectFB
-{
-  GdkDrawableImplDirectFB parent_instance;
-};
-
-typedef struct
-{
-  GdkDrawableImplDirectFBClass parent_class;
-} GdkPixmapImplDirectFBClass;
-
-GType gdk_pixmap_impl_directfb_get_type (void);
-
-
-
-/*
- * Window
- */
-
-typedef struct
-{
-  gulong   length;
-  GdkAtom  type;
-  gint     format;
-  guchar   data[1];
-} GdkWindowProperty;
-
-
-struct _GdkWindowImplDirectFB
-{
-  GdkDrawableImplDirectFB drawable;
-  GdkWindow             *gdkWindow;
-
-  IDirectFBWindow        *window;
-
-  DFBWindowID             dfb_id;
-
-  GdkCursor              *cursor;
-  GHashTable             *properties;
-
-  guint8                  opacity;
-
-  GdkWindowTypeHint       type_hint;
-
-  DFBUpdates              flips;
-  DFBRegion               flip_regions[4];
-};
-
-typedef struct
-{
-  GdkDrawableImplDirectFBClass parent_class;
-} GdkWindowImplDirectFBClass;
-
-GType gdk_window_impl_directfb_get_type        (void);
-
-void  gdk_directfb_window_send_crossing_events (GdkWindow       *src,
-                                                GdkWindow       *dest,
-                                                GdkCrossingMode  mode);
-
-void  _gdk_directfb_calc_abs                   (GdkWindow       *window);
-
-GdkWindow * gdk_directfb_window_find_toplevel  (GdkWindow       *window);
-
-
-void        gdk_directfb_window_id_table_insert (DFBWindowID  dfb_id,
-                                                 GdkWindow   *window);
-void        gdk_directfb_window_id_table_remove (DFBWindowID  dfb_id);
-GdkWindow * gdk_directfb_window_id_table_lookup (DFBWindowID  dfb_id);
-
-void        _gdk_directfb_window_get_offsets    (GdkWindow       *window,
-                                                 gint            *x_offset,
-                                                 gint            *y_offset);
-void        _gdk_directfb_window_scroll         (GdkWindow       *window,
-                                                 gint             dx,
-                                                 gint             dy);
-void        _gdk_directfb_window_move_region    (GdkWindow       *window,
-                                                 const cairo_region_t *region,
-                                                 gint             dx,
-                                                 gint             dy);
-
-
-typedef struct
-{
-  GdkCursor         cursor;
-
-  gint              hot_x;
-  gint              hot_y;
-  IDirectFBSurface *shape;
-} GdkCursorDirectFB;
-
-typedef struct
-{
-  GdkVisual              visual;
-  DFBSurfacePixelFormat  format;
-} GdkVisualDirectFB;
-
-void       gdk_directfb_event_windows_add    (GdkWindow *window);
-void       gdk_directfb_event_windows_remove (GdkWindow *window);
-
-GdkGrabStatus gdk_directfb_keyboard_grab  (GdkDisplay          *display,
-                                           GdkWindow           *window,
-                                           gint                 owner_events,
-                                           guint32              time);
-
-void          gdk_directfb_keyboard_ungrab(GdkDisplay          *display,
-                                           guint32              time);
-
-GdkGrabStatus gdk_directfb_pointer_grab   (GdkWindow           *window,
-                                           gint                 owner_events,
-                                           GdkEventMask         event_mask,
-                                           GdkWindow           *confine_to,
-                                           GdkCursor           *cursor,
-                                           guint32              time,
-                                           gboolean             implicit_grab);
-void          gdk_directfb_pointer_ungrab (guint32              time,
-                                           gboolean             implicit_grab);
-
-guint32       gdk_directfb_get_time       (void);
-
-GdkWindow * gdk_directfb_pointer_event_window  (GdkWindow    *window,
-                                                GdkEventType  type);
-GdkWindow * gdk_directfb_keyboard_event_window (GdkWindow    *window,
-                                                GdkEventType  type);
-GdkWindow * gdk_directfb_other_event_window    (GdkWindow    *window,
-                                                GdkEventType  type);
-void       _gdk_selection_window_destroyed    (GdkWindow       *window);
-
-void       _gdk_directfb_move_resize_child (GdkWindow *window,
-                                            gint       x,
-                                            gint       y,
-                                            gint       width,
-                                            gint       height);
-
-GdkWindow * gdk_directfb_child_at          (GdkWindow *window,
-                                            gint      *x,
-                                            gint      *y);
-
-GdkWindow * gdk_directfb_window_find_focus (void);
-
-void        gdk_directfb_change_focus      (GdkWindow *new_focus_window);
-
-void        gdk_directfb_mouse_get_info    (gint            *x,
-                                            gint            *y,
-                                            GdkModifierType *mask);
-
-/**********************/
-/*  Global variables  */
-/**********************/
-
-extern GdkDisplayDFB *_gdk_display;
-
-/* Pointer grab info */
-extern GdkWindow           * _gdk_directfb_pointer_grab_window;
-extern gboolean              _gdk_directfb_pointer_grab_owner_events;
-extern GdkWindow           * _gdk_directfb_pointer_grab_confine;
-extern GdkEventMask          _gdk_directfb_pointer_grab_events;
-extern GdkCursor           * _gdk_directfb_pointer_grab_cursor;
-
-/* Keyboard grab info */
-extern GdkWindow           * _gdk_directfb_keyboard_grab_window;
-extern GdkEventMask          _gdk_directfb_keyboard_grab_events;
-extern gboolean              _gdk_directfb_keyboard_grab_owner_events;
-
-extern GdkScreen  *  _gdk_screen;
-
-extern GdkAtom               _gdk_selection_property;
-
-
-IDirectFBPalette * gdk_directfb_colormap_get_palette (GdkColormap *colormap);
-
-
-/* these are Linux-FB specific functions used for window decorations */
-
-typedef gboolean (* GdkWindowChildChanged) (GdkWindow *window,
-                                            gint       x,
-                                            gint       y,
-                                            gint       width,
-                                            gint       height,
-                                            gpointer   user_data);
-typedef void     (* GdkWindowChildGetPos)  (GdkWindow *window,
-                                            gint      *x,
-                                            gint      *y,
-                                            gpointer   user_data);
-
-void gdk_fb_window_set_child_handler (GdkWindow              *window,
-                                      GdkWindowChildChanged  changed,
-                                      GdkWindowChildGetPos   get_pos,
-                                      gpointer               user_data);
-
-void gdk_directfb_clip_region (GdkDrawable  *drawable,
-                               GdkGC        *gc,
-                               GdkRectangle *draw_rect,
-                               cairo_region_t    *ret_clip);
-
-
-/* Utilities for avoiding mallocs */
-
-static inline void
-temp_region_init_copy( cairo_region_t       *region, 
-                       const cairo_region_t *source)
-{
-  if (region != source) /*  don't want to copy to itself */
-    {  
-      if (region->size < source->numRects)
-        {
-          if (region->rects && region->rects != &region->extents)
-            g_free( region->rects );
-
-          region->rects = g_new (cairo_region_tBox, source->numRects);
-          region->size  = source->numRects;
-        }
-
-      region->numRects = source->numRects;
-      region->extents  = source->extents;
-
-      memcpy( region->rects, source->rects, source->numRects * sizeof (cairo_region_tBox) );
-    }
-}
-
-static inline void
-temp_region_init_rectangle( cairo_region_t          *region,
-                            const GdkRectangle *rect )
-{
-     region->numRects = 1;
-     region->rects = &region->extents;
-     region->extents.x1 = rect->x;
-     region->extents.y1 = rect->y;
-     region->extents.x2 = rect->x + rect->width;
-     region->extents.y2 = rect->y + rect->height;
-     region->size = 1;
-}
-
-static inline void
-temp_region_init_rectangle_vals( cairo_region_t *region,
-                                 int        x,
-                                 int        y,
-                                 int        w,
-                                 int        h )
-{
-     region->numRects = 1;
-     region->rects = &region->extents;
-     region->extents.x1 = x;
-     region->extents.y1 = y;
-     region->extents.x2 = x + w;
-     region->extents.y2 = y + h;
-     region->size = 1;
-}
-
-static inline void
-temp_region_reset( cairo_region_t *region )
-{
-     if (region->size > 32 && region->rects && region->rects != &region->extents) {
-          g_free( region->rects );
-
-          region->size  = 1;
-          region->rects = &region->extents;
-     }
-
-     region->numRects = 0;
-}
-
-static inline void
-temp_region_deinit( cairo_region_t *region )
-{
-     if (region->rects && region->rects != &region->extents) {
-          g_free( region->rects );
-          region->rects = NULL;
-     }
-
-     region->numRects = 0;
-}
-
-
-#define GDKDFB_RECTANGLE_VALS_FROM_BOX(s)   (s)->x1, (s)->y1, (s)->x2-(s)->x1, (s)->y2-(s)->y1
-
-
-#endif /* __GDK_PRIVATE_DIRECTFB_H__ */
diff --git a/gdk/directfb/gdkproperty-directfb.c b/gdk/directfb/gdkproperty-directfb.c
deleted file mode 100644 (file)
index 9174c42..0000000
+++ /dev/null
@@ -1,397 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-
-#include <string.h>
-
-#include "gdkproperty.h"
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkinternals.h"
-
-
-static GHashTable *names_to_atoms;
-static GPtrArray *atoms_to_names;
-
-static const gchar xatoms_string[] = 
-  /* These are all the standard predefined X atoms */
-  "NONE\0"
-  "PRIMARY\0"
-  "SECONDARY\0"
-  "ARC\0"
-  "ATOM\0"
-  "BITMAP\0"
-  "CARDINAL\0"
-  "COLORMAP\0"
-  "CURSOR\0"
-  "CUT_BUFFER0\0"
-  "CUT_BUFFER1\0"
-  "CUT_BUFFER2\0"
-  "CUT_BUFFER3\0"
-  "CUT_BUFFER4\0"
-  "CUT_BUFFER5\0"
-  "CUT_BUFFER6\0"
-  "CUT_BUFFER7\0"
-  "DRAWABLE\0"
-  "FONT\0"
-  "INTEGER\0"
-  "PIXMAP\0"
-  "POINT\0"
-  "RECTANGLE\0"
-  "RESOURCE_MANAGER\0"
-  "RGB_COLOR_MAP\0"
-  "RGB_BEST_MAP\0"
-  "RGB_BLUE_MAP\0"
-  "RGB_DEFAULT_MAP\0"
-  "RGB_GRAY_MAP\0"
-  "RGB_GREEN_MAP\0"
-  "RGB_RED_MAP\0"
-  "STRING\0"
-  "VISUALID\0"
-  "WINDOW\0"
-  "WM_COMMAND\0"
-  "WM_HINTS\0"
-  "WM_CLIENT_MACHINE\0"
-  "WM_ICON_NAME\0"
-  "WM_ICON_SIZE\0"
-  "WM_NAME\0"
-  "WM_NORMAL_HINTS\0"
-  "WM_SIZE_HINTS\0"
-  "WM_ZOOM_HINTS\0"
-  "MIN_SPACE\0"
-  "NORM_SPACE\0"
-  "MAX_SPACE\0"
-  "END_SPACE\0"
-  "SUPERSCRIPT_X\0"
-  "SUPERSCRIPT_Y\0"
-  "SUBSCRIPT_X\0"
-  "SUBSCRIPT_Y\0"
-  "UNDERLINE_POSITION\0"
-  "UNDERLINE_THICKNESS\0"
-  "STRIKEOUT_ASCENT\0"
-  "STRIKEOUT_DESCENT\0"
-  "ITALIC_ANGLE\0"
-  "X_HEIGHT\0"
-  "QUAD_WIDTH\0"
-  "WEIGHT\0"
-  "POINT_SIZE\0"
-  "RESOLUTION\0"
-  "COPYRIGHT\0"
-  "NOTICE\0"
-  "FONT_NAME\0"
-  "FAMILY_NAME\0"
-  "FULL_NAME\0"
-  "CAP_HEIGHT\0"
-  "WM_CLASS\0"
-  "WM_TRANSIENT_FOR\0"
-;
-
-static const gint xatoms_offset[] = {
-    0,   5,  13,  23,  27,  32,  39,  48,  57,  64,  76,  88, 
-  100, 112, 124, 136, 148, 160, 169, 174, 182, 189, 195, 205, 
-  222, 236, 249, 262, 278, 291, 305, 317, 324, 333, 340, 351, 
-  360, 378, 391, 404, 412, 428, 442, 456, 466, 477, 487, 497, 
-  511, 525, 537, 549, 568, 588, 605, 623, 636, 645, 656, 663, 
-  674, 685, 695, 702, 712, 724, 734, 745, 754
-};
-
-#define N_CUSTOM_PREDEFINED 1
-
-static void
-ensure_atom_tables (void)
-{
-  int i;
-  
-  if (names_to_atoms)
-    return;
-
-  names_to_atoms = g_hash_table_new (g_str_hash, g_str_equal);
-  atoms_to_names = g_ptr_array_sized_new (G_N_ELEMENTS (xatoms_offset));
-
-  for (i = 0; i < G_N_ELEMENTS (xatoms_offset); i++)
-    {
-      g_hash_table_insert(names_to_atoms, (gchar *)xatoms_string + xatoms_offset[i], GINT_TO_POINTER (i));
-      g_ptr_array_add(atoms_to_names, (gchar *)xatoms_string + xatoms_offset[i]);
-    }
-}
-
-static GdkAtom
-intern_atom_internal (const gchar *atom_name, gboolean allocate)
-{
-  gpointer result;
-  gchar *name;
-  g_return_val_if_fail (atom_name != NULL, GDK_NONE);
-
-  ensure_atom_tables ();
-  
-  if (g_hash_table_lookup_extended (names_to_atoms, atom_name, NULL, &result))
-    return result;
-  
-  result = GINT_TO_POINTER (atoms_to_names->len);
-  name = allocate ? g_strdup (atom_name) : (gchar *)atom_name;
-  g_hash_table_insert(names_to_atoms, name, result);
-  g_ptr_array_add(atoms_to_names, name);
-  
-  return result;  
-}
-
-GdkAtom
-gdk_atom_intern (const gchar *atom_name,
-                gboolean     only_if_exists)
-{
-  return intern_atom_internal (atom_name, TRUE);
-}
-
-GdkAtom
-gdk_atom_intern_static_string (const gchar *atom_name)
-{
-  return intern_atom_internal (atom_name, FALSE);
-}
-
-
-gchar *
-gdk_atom_name (GdkAtom atom)
-{
-  if (!atoms_to_names)
-    return NULL;
-    
-  if (GPOINTER_TO_INT (atom) >= atoms_to_names->len)
-    return NULL;
-  return g_strdup(g_ptr_array_index (atoms_to_names, GPOINTER_TO_INT (atom)));
-}
-
-
-static void
-gdk_property_delete_2 (GdkWindow         *window,
-                       GdkAtom            property,
-                       GdkWindowProperty *prop)
-{
-  GdkWindowImplDirectFB *impl;
-  GdkEvent              *event;
-  GdkWindow             *event_window;
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  g_hash_table_remove (impl->properties, GUINT_TO_POINTER (property));
-  g_free (prop);
-
-  event_window = gdk_directfb_other_event_window (window, GDK_PROPERTY_NOTIFY);
-
-  if (event_window)
-    {
-      event = gdk_directfb_event_make (event_window, GDK_PROPERTY_NOTIFY);
-      event->property.atom  = property;
-      event->property.state = GDK_PROPERTY_DELETE;
-    }
-}
-
-void
-gdk_property_delete (GdkWindow *window,
-                     GdkAtom    property)
-{
-  GdkWindowImplDirectFB *impl;
-  GdkWindowProperty     *prop;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  if (!impl->properties)
-    return;
-
-  prop = g_hash_table_lookup (impl->properties, GUINT_TO_POINTER (property));
-  if (!prop)
-    return;
-
-  gdk_property_delete_2 (window, property, prop);
-}
-
-gboolean
-gdk_property_get (GdkWindow   *window,
-                  GdkAtom      property,
-                  GdkAtom      type,
-                  gulong       offset,
-                  gulong       length,
-                  gint         pdelete,
-                  GdkAtom     *actual_property_type,
-                  gint        *actual_format_type,
-                  gint        *actual_length,
-                  guchar     **data)
-{
-  GdkWindowImplDirectFB *impl;
-  GdkWindowProperty     *prop;
-  gint                   nbytes = 0;
-
-  g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), FALSE);
-  g_return_val_if_fail (data != NULL, FALSE);
-
-  if (!window)
-    window = _gdk_parent_root;
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return FALSE;
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  if (!impl->properties)
-    return FALSE;
-
-  prop = g_hash_table_lookup (impl->properties, GUINT_TO_POINTER (property));
-  if (!prop)
-    {
-      if (actual_property_type)
-        *actual_property_type = GDK_NONE;
-      return FALSE;
-    }
-
-  nbytes = CLAMP (length, 0, prop->length - offset * 4);
-
-  if (nbytes > 0 &&
-      (prop->type == 0 /* AnyPropertyType */ || prop->type == type))
-    {
-      *data = g_malloc (nbytes + 1);
-      memcpy (*data, prop->data + offset, nbytes);
-      (*data)[nbytes] = 0;
-    }
-  else
-    {
-      *data = NULL;
-    }
-
-  if (actual_length)
-    *actual_length = nbytes;
-  if (actual_property_type)
-    *actual_property_type = prop->type;
-  if (actual_format_type)
-    *actual_format_type = prop->format;
-
-  /* only delete the property if it was completely retrieved */
-  if (pdelete && length >= *actual_length && *data != NULL)
-    {
-      gdk_property_delete_2 (window, property, prop);
-    }
-
-  return TRUE;
-}
-
-void
-gdk_property_change (GdkWindow    *window,
-                     GdkAtom       property,
-                     GdkAtom       type,
-                     gint          format,
-                     GdkPropMode   mode,
-                     const guchar *data,
-                     gint          nelements)
-{
-  GdkWindowImplDirectFB *impl;
-  GdkWindowProperty     *prop;
-  GdkWindowProperty     *new_prop;
-  gint                   new_size = 0;
-  GdkEvent              *event;
-  GdkWindow             *event_window;
-
-  g_return_if_fail (window == NULL || GDK_IS_WINDOW (window));
-
-  if (!window)
-    window = _gdk_parent_root;
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  if (!impl->properties)
-    impl->properties = g_hash_table_new (NULL, NULL);
-
-  prop = g_hash_table_lookup (impl->properties, GUINT_TO_POINTER (property));
-
-  switch (mode)
-    {
-    case GDK_PROP_MODE_REPLACE:
-      new_size = nelements * (format >> 3);
-      break;
-
-    case GDK_PROP_MODE_PREPEND:
-    case GDK_PROP_MODE_APPEND:
-      new_size = nelements * (format >> 3);
-      if (prop)
-        {
-          if (type != prop->type || format != prop->format)
-            return;
-          new_size += prop->length;
-        }
-      break;
-    }
-
-  new_prop = g_malloc (G_STRUCT_OFFSET (GdkWindowProperty, data) + new_size);
-  new_prop->length = new_size;
-  new_prop->type   = type;
-  new_prop->format = format;
-
-  switch (mode)
-    {
-    case GDK_PROP_MODE_REPLACE:
-      memcpy (new_prop->data, data, new_size);
-      break;
-
-    case GDK_PROP_MODE_APPEND:
-      if (prop)
-        memcpy (new_prop->data, prop->data, prop->length);
-      memcpy (new_prop->data + new_prop->length,
-              data, (nelements * (format >> 3)));
-      break;
-
-    case GDK_PROP_MODE_PREPEND:
-      memcpy (new_prop->data, data, (nelements * (format >> 3)));
-      if (prop)
-        memcpy (new_prop->data + (nelements * (format >> 3)),
-                prop->data, prop->length);
-      break;
-    }
-
-  g_hash_table_insert (impl->properties,
-                       GUINT_TO_POINTER (property), new_prop);
-  g_free (prop);
-
-  event_window = gdk_directfb_other_event_window (window, GDK_PROPERTY_NOTIFY);
-
-  if (event_window)
-    {
-      event = gdk_directfb_event_make (event_window, GDK_PROPERTY_NOTIFY);
-      event->property.atom  = property;
-      event->property.state = GDK_PROPERTY_NEW_VALUE;
-    }
-}
diff --git a/gdk/directfb/gdkscreen-directfb.c b/gdk/directfb/gdkscreen-directfb.c
deleted file mode 100644 (file)
index bba03a6..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * Copyright (C) 1998-1999 Tor Lillqvist
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-#include "gdkscreen.h"
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkinternals.h"
-
-
-static GdkColormap *default_colormap = NULL;
-
-GdkDisplay *
-gdk_screen_get_display (GdkScreen *screen)
-{
-  return GDK_DISPLAY_OBJECT(_gdk_display);
-}
-
-GdkWindow *
-gdk_screen_get_root_window (GdkScreen *screen)
-{
-  return _gdk_parent_root;
-}
-
-GdkColormap*
-gdk_screen_get_default_colormap (GdkScreen *screen)
-{
-  return default_colormap;
-}
-
-void
-gdk_screen_set_default_colormap (GdkScreen   *screen,
-                                GdkColormap *colormap)
-{
-  GdkColormap *old_colormap;
-
-  g_return_if_fail (GDK_IS_SCREEN (screen));
-  g_return_if_fail (GDK_IS_COLORMAP (colormap));
-
-  old_colormap = default_colormap;
-
-  default_colormap = g_object_ref (colormap);
-
-  if (old_colormap)
-    g_object_unref (old_colormap);
-}
-
-gint
-gdk_screen_get_n_monitors (GdkScreen *screen)
-{
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), 0);
-
-  return 1;
-}
-
-gint
-gdk_screen_get_primary_monitor (GdkScreen *screen)
-{
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), 0);
-
-  return 0;
-}
-
-void
-gdk_screen_get_monitor_geometry (GdkScreen    *screen,
-                                gint          num_monitor,
-                                GdkRectangle *dest)
-{
-  g_return_if_fail (GDK_IS_SCREEN (screen));
-  g_return_if_fail (dest != NULL);
-
-  dest->x = 0;
-  dest->y = 0;
-  dest->width  = gdk_screen_width ();
-  dest->height = gdk_screen_height ();
-}
-
-gint
-gdk_screen_get_monitor_width_mm (GdkScreen *screen,
-                                 gint       monitor_num)
-{
-  return gdk_screen_get_width_mm (screen);
-}
-
-gint
-gdk_screen_get_monitor_height_mm (GdkScreen *screen,
-                                  gint       monitor_num)
-{
-  return gdk_screen_get_height_mm (screen);
-}
-
-gchar *
-gdk_screen_get_monitor_plug_name (GdkScreen *screen,
-                                  gint       monitor_num)
-{
-  return g_strdup ("DirectFB");
-}
-
-gint
-gdk_screen_get_number (GdkScreen *screen)
-{
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), 0);
-
-  return 0;
-}
-
-
-gchar *
-_gdk_windowing_substitute_screen_number (const gchar *display_name,
-                                        int          screen_number)
-{
-  return g_strdup (display_name);
-}
-
-gchar *
-gdk_screen_make_display_name (GdkScreen *screen)
-{
-  return g_strdup ("DirectFB");
-}
-
-gint
-gdk_screen_get_width (GdkScreen *screen)
-{
-  DFBDisplayLayerConfig dlc;
-
-  _gdk_display->layer->GetConfiguration (_gdk_display->layer, &dlc);
-
-  return dlc.width;
-}
-
-gint
-gdk_screen_get_height (GdkScreen *screen)
-{
-  DFBDisplayLayerConfig dlc;
-
-  _gdk_display->layer->GetConfiguration (_gdk_display->layer, &dlc);
-
-  return dlc.height;
-}
-
-gint
-gdk_screen_get_width_mm (GdkScreen *screen)
-{
-  static gboolean first_call = TRUE;
-  DFBDisplayLayerConfig dlc;
-
-  if (first_call)
-    {
-      g_message
-        ("gdk_screen_width_mm() assumes a screen resolution of 72 dpi");
-      first_call = FALSE;
-    }
-
-  _gdk_display->layer->GetConfiguration (_gdk_display->layer, &dlc);
-
-  return (dlc.width * 254) / 720;
-}
-
-gint
-gdk_screen_get_height_mm (GdkScreen *screen)
-{
-  static gboolean first_call = TRUE;
-  DFBDisplayLayerConfig dlc;
-
-  if (first_call)
-    {
-      g_message
-        ("gdk_screen_height_mm() assumes a screen resolution of 72 dpi");
-      first_call = FALSE;
-    }
-
-  _gdk_display->layer->GetConfiguration (_gdk_display->layer, &dlc);
-
-  return (dlc.height * 254) / 720;
-}
-
-GdkVisual *
-gdk_screen_get_rgba_visual (GdkScreen *screen)
-{
-  static GdkVisual *rgba_visual;
-  if( !rgba_visual )
-    rgba_visual = gdk_directfb_visual_by_format(DSPF_ARGB);
-  return rgba_visual;
-}
-
-GdkColormap *
-gdk_screen_get_rgba_colormap (GdkScreen *screen)
-{
-  static GdkColormap *rgba_colormap;
-  if( !rgba_colormap && gdk_screen_get_rgba_visual(screen) )
-    rgba_colormap = gdk_colormap_new (gdk_screen_get_rgba_visual(screen),FALSE);
-  return rgba_colormap;
-}
-
-GdkWindow *
-gdk_screen_get_active_window (GdkScreen *screen)
-{
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
-
-  return NULL;
-}
-
-GList *
-gdk_screen_get_window_stack (GdkScreen *screen)
-{
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
-
-  return NULL;
-}
-
-gboolean
-gdk_screen_is_composited (GdkScreen *screen)
-{
-   g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
-   return FALSE;
-} 
diff --git a/gdk/directfb/gdkselection-directfb.c b/gdk/directfb/gdkselection-directfb.c
deleted file mode 100644 (file)
index 7b4306d..0000000
+++ /dev/null
@@ -1,494 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-
-#include <string.h>
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkproperty.h"
-#include "gdkselection.h"
-#include "gdkprivate.h"
-
-
-typedef struct _OwnerInfo OwnerInfo;
-
-struct _OwnerInfo
-{
-  GdkAtom    selection;
-  GdkWindow *owner;
-};
-
-GSList *owner_list = NULL;
-
-/* When a window is destroyed we check if it is the owner
- * of any selections. This is somewhat inefficient, but
- * owner_list is typically short, and it is a low memory,
- * low code solution
- */
-void
-_gdk_selection_window_destroyed (GdkWindow *window)
-{
-  GSList *tmp_list = owner_list;
-
-  while (tmp_list)
-    {
-      OwnerInfo *info = tmp_list->data;
-
-      tmp_list = tmp_list->next;
-
-      if (info->owner == window)
-       {
-         owner_list = g_slist_remove (owner_list, info);
-         g_free (info);
-       }
-    }
-}
-
-gint
-gdk_selection_owner_set_for_display (GdkDisplay *display,
-                                     GdkWindow  *owner,
-                                     GdkAtom     selection,
-                                     guint32     time,
-                                     gint        send_event)
-{
-  GSList    *tmp_list;
-  OwnerInfo *info;
-
-  tmp_list = owner_list;
-  while (tmp_list)
-    {
-      info = tmp_list->data;
-      if (info->selection == selection)
-       {
-         owner_list = g_slist_remove (owner_list, info);
-         g_free (info);
-         break;
-       }
-      tmp_list = tmp_list->next;
-    }
-
-  if (owner)
-    {
-      info = g_new (OwnerInfo, 1);
-      info->owner = owner;
-      info->selection = selection;
-
-      owner_list = g_slist_prepend (owner_list, info);
-    }
-
-  return TRUE;
-}
-
-GdkWindow *
-gdk_selection_owner_get_for_display (GdkDisplay *display,
-                                     GdkAtom     selection)
-{
-  OwnerInfo *info;
-  GSList    *tmp_list;
-
-  tmp_list = owner_list;
-  while (tmp_list)
-    {
-      info = tmp_list->data;
-      if (info->selection == selection)
-       {
-         return info->owner;
-       }
-      tmp_list = tmp_list->next;
-    }
-  return NULL;
-}
-
-void
-gdk_selection_convert (GdkWindow *requestor,
-                      GdkAtom    selection,
-                      GdkAtom    target,
-                      guint32    time)
-{
-  GdkEvent  *event;
-  GdkWindow *owner;
-  GdkWindow *event_window;
-
-  owner = gdk_selection_owner_get (selection);
-
-  if (owner)
-    {
-      event_window = gdk_directfb_other_event_window (owner,
-                                                      GDK_SELECTION_REQUEST);
-      if (event_window)
-       {
-         event = gdk_directfb_event_make (event_window,
-                                           GDK_SELECTION_REQUEST);
-         event->selection.requestor = GDK_WINDOW_DFB_ID (requestor);
-         event->selection.selection = selection;
-         event->selection.target    = target;
-         event->selection.property  = _gdk_selection_property;
-       }
-    }
-  else
-    {
-      /* If no owner for the specified selection exists, the X server
-       * generates a SelectionNotify event to the requestor with property None.
-       */
-      gdk_selection_send_notify (GDK_WINDOW_DFB_ID (requestor),
-                                selection,
-                                target,
-                                GDK_NONE,
-                                0);
-    }
-}
-
-gint
-gdk_selection_property_get (GdkWindow  *requestor,
-                           guchar    **data,
-                           GdkAtom    *ret_type,
-                           gint       *ret_format)
-{
-  guchar *t = NULL;
-  GdkAtom prop_type;
-  gint prop_format;
-  gint prop_len;
-
-  g_return_val_if_fail (requestor != NULL, 0);
-  g_return_val_if_fail (GDK_IS_WINDOW (requestor), 0);
-
-  if (!gdk_property_get (requestor,
-                        _gdk_selection_property,
-                        0/*AnyPropertyType?*/,
-                        0, 0,
-                        FALSE,
-                        &prop_type, &prop_format, &prop_len,
-                        &t))
-    {
-      *data = NULL;
-      return 0;
-    }
-
-  if (ret_type)
-    *ret_type = prop_type;
-  if (ret_format)
-    *ret_format = prop_format;
-
-  if (!gdk_property_get (requestor,
-                        _gdk_selection_property,
-                        0/*AnyPropertyType?*/,
-                        0, prop_len + 1,
-                        FALSE,
-                        &prop_type, &prop_format, &prop_len,
-                        &t))
-    {
-      *data = NULL;
-      return 0;
-    }
-
-  *data = t;
-
-  return prop_len;
-}
-
-
-void
-gdk_selection_send_notify_for_display (GdkDisplay *display,
-                                       guint32     requestor,
-                                       GdkAtom     selection,
-                                       GdkAtom     target,
-                                       GdkAtom     property,
-                                       guint32     time)
-{
-  GdkEvent  *event;
-  GdkWindow *event_window;
-
-  event_window = gdk_window_lookup ((GdkNativeWindow) requestor);
-
-  if (!event_window)
-    return;
-
-  event_window = gdk_directfb_other_event_window (event_window,
-                                                  GDK_SELECTION_NOTIFY);
-
-  if (event_window)
-    {
-      event = gdk_directfb_event_make (event_window, GDK_SELECTION_NOTIFY);
-      event->selection.selection = selection;
-      event->selection.target = target;
-      event->selection.property = property;
-      event->selection.requestor = (GdkNativeWindow) requestor;
-    }
-}
-
-gint
-gdk_text_property_to_text_list_for_display (GdkDisplay      *display,
-                                            GdkAtom          encoding,
-                                            gint             format,
-                                            const guchar    *text,
-                                            gint             length,
-                                            gchar         ***list)
-{
-  g_warning ("gdk_text_property_to_text_list() not implemented\n");
-  return 0;
-}
-
-void
-gdk_free_text_list (gchar **list)
-{
-  g_return_if_fail (list != NULL);
-  g_warning ("gdk_free_text_list() not implemented\n");
-}
-
-gint
-gdk_string_to_compound_text_for_display (GdkDisplay   *display,
-                                         const gchar  *str,
-                                         GdkAtom      *encoding,
-                                         gint         *format,
-                                         guchar      **ctext,
-                                         gint         *length)
-{
-  g_warning ("gdk_string_to_compound_text() not implemented\n");
-  return 0;
-}
-
-void
-gdk_free_compound_text (guchar *ctext)
-{
-  g_warning ("gdk_free_compound_text() not implemented\n");
-}
-
-/**
- * gdk_utf8_to_string_target:
- * @str: a UTF-8 string
- *
- * Convert an UTF-8 string into the best possible representation
- * as a STRING. The representation of characters not in STRING
- * is not specified; it may be as pseudo-escape sequences
- * \x{ABCD}, or it may be in some other form of approximation.
- *
- * Return value: the newly allocated string, or %NULL if the
- *               conversion failed. (It should not fail for
- *               any properly formed UTF-8 string.)
- **/
-gchar *
-gdk_utf8_to_string_target (const gchar *str)
-{
-  g_warning ("gdk_utf8_to_string_target() not implemented\n");
-  return 0;
-}
-
-/**
- * gdk_utf8_to_compound_text:
- * @str:      a UTF-8 string
- * @encoding: location to store resulting encoding
- * @format:   location to store format of the result
- * @ctext:    location to store the data of the result
- * @length:   location to store the length of the data
- *            stored in @ctext
- *
- * Convert from UTF-8 to compound text.
- *
- * Return value: %TRUE if the conversion succeeded, otherwise
- *               false.
- **/
-gboolean
-gdk_utf8_to_compound_text_for_display (GdkDisplay   *display,
-                                       const gchar  *str,
-                                       GdkAtom      *encoding,
-                                       gint         *format,
-                                       guchar      **ctext,
-                                       gint         *length)
-{
-  g_warning ("gdk_utf8_to_compound_text() not implemented\n");
-  return 0;
-}
-
-static gint
-make_list (const gchar  *text,
-          gint          length,
-          gboolean      latin1,
-          gchar      ***list)
-{
-  GSList *strings = NULL;
-  gint n_strings = 0;
-  gint i;
-  const gchar *p = text;
-  const gchar *q;
-  GSList *tmp_list;
-  GError *error = NULL;
-
-  while (p < text + length)
-    {
-      gchar *str;
-
-      q = p;
-      while (*q && q < text + length)
-       q++;
-
-      if (latin1)
-       {
-         str = g_convert (p, q - p,
-                          "UTF-8", "ISO-8859-1",
-                          NULL, NULL, &error);
-
-         if (!str)
-           {
-             g_warning ("Error converting selection from STRING: %s",
-                        error->message);
-             g_error_free (error);
-           }
-       }
-      else
-       str = g_strndup (p, q - p);
-
-      if (str)
-       {
-         strings = g_slist_prepend (strings, str);
-         n_strings++;
-       }
-
-      p = q + 1;
-    }
-
-  if (list)
-    *list = g_new (gchar *, n_strings + 1);
-
-  (*list)[n_strings] = NULL;
-
-  i = n_strings;
-  tmp_list = strings;
-  while (tmp_list)
-    {
-      if (list)
-       (*list)[--i] = tmp_list->data;
-      else
-       g_free (tmp_list->data);
-
-      tmp_list = tmp_list->next;
-    }
-
-  g_slist_free (strings);
-
-  return n_strings;
-}
-
-
-/**
- * gdk_text_property_to_utf8_list:
- * @encoding: an atom representing the encoding of the text
- * @format:   the format of the property
- * @text:     the text to convert
- * @length:   the length of @text, in bytes
- * @list:     location to store the list of strings or %NULL. The
- *            list should be freed with g_strfreev().
- *
- * Convert a text property in the giving encoding to
- * a list of UTF-8 strings.
- *
- * Return value: the number of strings in the resulting
- *               list.
- **/
-gint
-gdk_text_property_to_utf8_list_for_display (GdkDisplay     *display,
-                                            GdkAtom         encoding,
-                                            gint            format,
-                                            const guchar   *text,
-                                            gint            length,
-                                            gchar        ***list)
-{
-  g_return_val_if_fail (text != NULL, 0);
-  g_return_val_if_fail (length >= 0, 0);
-
-  if (encoding == GDK_TARGET_STRING)
-    {
-      return make_list ((gchar *)text, length, TRUE, list);
-    }
-  else if (encoding == gdk_atom_intern ("UTF8_STRING", FALSE))
-    {
-      return make_list ((gchar *)text, length, FALSE, list);
-    }
-  else
-    {
-      gchar **local_list;
-      gint local_count;
-      gint i;
-      const gchar *charset = NULL;
-      gboolean need_conversion = !g_get_charset (&charset);
-      gint count = 0;
-      GError *error = NULL;
-
-      /* Probably COMPOUND text, we fall back to Xlib routines
-       */
-      local_count = gdk_text_property_to_text_list (encoding,
-                                                   format,
-                                                   text,
-                                                   length,
-                                                   &local_list);
-      if (list)
-       *list = g_new (gchar *, local_count + 1);
-
-      for (i = 0; i < local_count; i++)
-       {
-         /* list contains stuff in our default encoding
-          */
-         if (need_conversion)
-           {
-             gchar *utf = g_convert (local_list[i], -1,
-                                     "UTF-8", charset,
-                                     NULL, NULL, &error);
-             if (utf)
-               {
-                 if (list)
-                   (*list)[count++] = utf;
-                 else
-                   g_free (utf);
-               }
-             else
-               {
-                 g_warning ("Error converting to UTF-8 from '%s': %s",
-                            charset, error->message);
-                 g_error_free (error);
-                 error = NULL;
-               }
-           }
-         else
-           {
-             if (list)
-               (*list)[count++] = g_strdup (local_list[i]);
-           }
-       }
-
-      gdk_free_text_list (local_list);
-      (*list)[count] = NULL;
-
-      return count;
-    }
-}
diff --git a/gdk/directfb/gdkspawn-directfb.c b/gdk/directfb/gdkspawn-directfb.c
deleted file mode 100644 (file)
index 0c265b2..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Authors: Mark McLoughlin <mark@skynet.ie>
- */
-
-#include "config.h"
-#include <glib.h>
-#include "gdk.h"
-#include "gdkspawn.h"
-#include "gdkprivate.h"
-
-
-gboolean
-gdk_spawn_on_screen (GdkScreen             *screen,
-                    const gchar           *working_directory,
-                    gchar                **argv,
-                    gchar                **envp,
-                    GSpawnFlags            flags,
-                    GSpawnChildSetupFunc   child_setup,
-                    gpointer               user_data,
-                    GPid                  *child_pid,
-                    GError               **error)
-{
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
-
-  return g_spawn_async (working_directory,
-                       argv,
-                       envp,
-                       flags,
-                       child_setup,
-                       user_data,
-                       child_pid,
-                       error);
-}
-
-gboolean
-gdk_spawn_on_screen_with_pipes (GdkScreen            *screen,
-                               const gchar          *working_directory,
-                               gchar               **argv,
-                               gchar               **envp,
-                               GSpawnFlags           flags,
-                               GSpawnChildSetupFunc  child_setup,
-                               gpointer              user_data,
-                               GPid                 *child_pid,
-                               gint                 *standard_input,
-                               gint                 *standard_output,
-                               gint                 *standard_error,
-                               GError              **error)
-{
-  g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
-
-  return g_spawn_async_with_pipes (working_directory,
-                                  argv,
-                                  envp,
-                                  flags,
-                                  child_setup,
-                                  user_data,
-                                  child_pid,
-                                  standard_input,
-                                  standard_output,
-                                  standard_error,
-                                  error);
-}
-
-gboolean
-gdk_spawn_command_line_on_screen (GdkScreen    *screen,
-                                 const gchar  *command_line,
-                                 GError      **error)
-{
-  gchar    **argv = NULL;
-  gboolean   retval;
-
-  g_return_val_if_fail (command_line != NULL, FALSE);
-
-  if (!g_shell_parse_argv (command_line,
-                          NULL, &argv,
-                          error))
-    return FALSE;
-
-  retval = gdk_spawn_on_screen (screen,
-                               NULL, argv, NULL,
-                               G_SPAWN_SEARCH_PATH,
-                               NULL, NULL, NULL,
-                               error);
-  g_strfreev (argv);
-
-  return retval;
-}
diff --git a/gdk/directfb/gdktestutils-directfb.c b/gdk/directfb/gdktestutils-directfb.c
deleted file mode 100644 (file)
index 861cd22..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Gtk+ testing utilities
- * Copyright (C) 2007 Imendio AB
- * Authors: Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH 
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-#include "config.h"
-
-#include <unistd.h>
-
-#include "gdk.h"
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include <gdk/gdktestutils.h>
-#include <gdk/gdkkeysyms.h>
-
-
-static DFBInputDeviceKeySymbol
-_gdk_keyval_to_directfb (guint keyval)
-{
-  switch (keyval) {
-    case 0 ... 127:
-      return DFB_KEY( UNICODE, keyval );
-    case GDK_F1 ... GDK_F12:
-      return keyval - GDK_F1 + DIKS_F1;
-    case GDK_BackSpace:
-      return DIKS_BACKSPACE;
-    case GDK_Tab:
-      return DIKS_TAB;
-    case GDK_Return:
-      return DIKS_RETURN;
-    case GDK_Escape:
-      return DIKS_ESCAPE;
-    case GDK_Delete:
-      return DIKS_DELETE; 
-    case GDK_Left:
-      return DIKS_CURSOR_LEFT;
-    case GDK_Up:
-      return DIKS_CURSOR_UP;
-    case GDK_Right:
-      return DIKS_CURSOR_RIGHT;
-    case GDK_Down:
-      return DIKS_CURSOR_DOWN;
-    case GDK_Insert:
-      return DIKS_INSERT;
-    case GDK_Home:
-      return DIKS_HOME;
-    case GDK_End:
-      return DIKS_END;
-    case GDK_Page_Up:
-      return DIKS_PAGE_UP;
-    case GDK_Page_Down:
-      return DIKS_PAGE_DOWN;
-    case GDK_Print:
-      return DIKS_PRINT;
-    case GDK_Pause:
-      return DIKS_PAUSE;
-    case GDK_Clear:
-      return DIKS_CLEAR;
-    case GDK_Cancel:
-      return DIKS_CANCEL;
-      /* TODO: handle them all */
-    default:
-      break;
-  }
-
-  return DIKS_NULL;
-}
-
-static DFBInputDeviceModifierMask
-_gdk_modifiers_to_directfb (GdkModifierType modifiers)
-{
-  DFBInputDeviceModifierMask dfb_modifiers = 0;
-  
-  if (modifiers & GDK_MOD1_MASK)
-    dfb_modifiers |= DIMM_ALT;
-  if (modifiers & GDK_MOD2_MASK)
-    dfb_modifiers |= DIMM_ALTGR;
-  if (modifiers & GDK_CONTROL_MASK)
-    dfb_modifiers |= DIMM_CONTROL;
-  if (modifiers & GDK_SHIFT_MASK)
-    dfb_modifiers |= DIMM_SHIFT;
-
-  return dfb_modifiers;
-}
-
-/**
- * gdk_test_render_sync
- * @window: a mapped GdkWindow
- *
- * This function retrives a pixel from @window to force the windowing
- * system to carry out any pending rendering commands.
- * This function is intended to be used to syncronize with rendering
- * pipelines, to benchmark windowing system rendering operations.
- **/
-void
-gdk_test_render_sync (GdkWindow *window)
-{
-  _gdk_display->directfb->WaitIdle (_gdk_display->directfb);    
-}
-
-/**
- * gdk_test_simulate_key
- * @window: Gdk window to simulate a key event for.
- * @x:      x coordinate within @window for the key event.
- * @y:      y coordinate within @window for the key event.
- * @keyval: A Gdk keyboard value.
- * @modifiers: Keyboard modifiers the event is setup with.
- * @key_pressrelease: either %GDK_KEY_PRESS or %GDK_KEY_RELEASE
- *
- * This function is intended to be used in Gtk+ test programs.
- * If (@x,@y) are > (-1,-1), it will warp the mouse pointer to
- * the given (@x,@y) corrdinates within @window and simulate a
- * key press or release event.
- * When the mouse pointer is warped to the target location, use
- * of this function outside of test programs that run in their
- * own virtual windowing system (e.g. Xvfb) is not recommended.
- * If (@x,@y) are passed as (-1,-1), the mouse pointer will not
- * be warped and @window origin will be used as mouse pointer
- * location for the event.
- * Also, gtk_test_simulate_key() is a fairly low level function,
- * for most testing purposes, gtk_test_widget_send_key() is the
- * right function to call which will generate a key press event
- * followed by its accompanying key release event.
- *
- * Returns: wether all actions neccessary for a key event simulation were carried out successfully.
- **/
-gboolean
-gdk_test_simulate_key (GdkWindow      *window,
-                       gint            x,
-                       gint            y,
-                       guint           keyval,
-                       GdkModifierType modifiers,
-                       GdkEventType    key_pressrelease)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-  DFBWindowEvent         evt; 
-
-  g_return_val_if_fail (GDK_IS_WINDOW(window), FALSE);
-  g_return_val_if_fail (key_pressrelease == GDK_KEY_PRESS ||
-                        key_pressrelease == GDK_KEY_RELEASE, FALSE);
-  
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-  if (x >= 0 && y >= 0) {
-    int win_x, win_y;
-    impl->window->GetPosition (impl->window, &win_x, &win_y);
-    if (_gdk_display->layer->WarpCursor (_gdk_display->layer, win_x+x, win_y+y))
-      return FALSE;
-  }
-  evt.clazz      = DFEC_WINDOW;
-  evt.type       = (key_pressrelease == GDK_KEY_PRESS) ? DWET_KEYDOWN : DWET_KEYUP;
-#if ((DIRECTFB_MAJOR_VERSION > 1) || (DIRECTFB_MINOR_VERSION >= 2))
-  evt.flags      = DWEF_NONE;
-#endif
-  evt.window_id  = impl->dfb_id;
-  evt.x          = MAX(x, 0);
-  evt.y          = MAX(y, 0);
-  _gdk_display->layer->GetCursorPosition (_gdk_display->layer, &evt.cx, &evt.cy);
-  evt.key_code   = -1;
-  evt.key_symbol = _gdk_keyval_to_directfb (keyval);
-  evt.modifiers  = _gdk_modifiers_to_directfb (modifiers);
-  evt.locks      = (modifiers & GDK_LOCK_MASK) ? DILS_CAPS : 0;
-  gettimeofday (&evt.timestamp, NULL);
-
-  _gdk_display->buffer->PostEvent (_gdk_display->buffer, DFB_EVENT(&evt));
-
-  return TRUE;
-}
-
-/**
- * gdk_test_simulate_button
- * @window: Gdk window to simulate a button event for.
- * @x:      x coordinate within @window for the button event.
- * @y:      y coordinate within @window for the button event.
- * @button: Number of the pointer button for the event, usually 1, 2 or 3.
- * @modifiers: Keyboard modifiers the event is setup with.
- * @button_pressrelease: either %GDK_BUTTON_PRESS or %GDK_BUTTON_RELEASE
- *
- * This function is intended to be used in Gtk+ test programs.
- * It will warp the mouse pointer to the given (@x,@y) corrdinates
- * within @window and simulate a button press or release event.
- * Because the mouse pointer needs to be warped to the target
- * location, use of this function outside of test programs that
- * run in their own virtual windowing system (e.g. Xvfb) is not
- * recommended.
- * Also, gtk_test_simulate_button() is a fairly low level function,
- * for most testing purposes, gtk_test_widget_click() is the right
- * function to call which will generate a button press event followed
- * by its accompanying button release event.
- *
- * Returns: wether all actions neccessary for a button event simulation were carried out successfully.
- **/
-gboolean
-gdk_test_simulate_button (GdkWindow      *window,
-                          gint            x,
-                          gint            y,
-                          guint           button, /*1..3*/
-                          GdkModifierType modifiers,
-                          GdkEventType    button_pressrelease)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-  DFBWindowEvent         evt;  
-  
-  g_return_val_if_fail (GDK_IS_WINDOW(window), FALSE);
-  g_return_val_if_fail (button_pressrelease == GDK_BUTTON_PRESS ||
-                        button_pressrelease == GDK_BUTTON_RELEASE, FALSE);
-  
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-  if (x >= 0 && y >= 0) {
-    int win_x, win_y;
-    impl->window->GetPosition (impl->window, &win_x, &win_y);
-    if (_gdk_display->layer->WarpCursor (_gdk_display->layer, win_x+x, win_y+y))
-      return FALSE;
-  }
-
-  evt.clazz      = DFEC_WINDOW;
-  evt.type       = (button_pressrelease == GDK_BUTTON_PRESS) ? DWET_BUTTONDOWN : DWET_BUTTONUP;
-#if ((DIRECTFB_MAJOR_VERSION > 1) || (DIRECTFB_MINOR_VERSION >= 2))
-  evt.flags      = DWEF_NONE;
-#endif
-  evt.window_id  = impl->dfb_id;
-  evt.x          = MAX(x, 0);
-  evt.y          = MAX(y, 0); 
-  _gdk_display->layer->GetCursorPosition (_gdk_display->layer, &evt.cx, &evt.cy);
-  evt.modifiers  = _gdk_modifiers_to_directfb (modifiers);
-  evt.locks      = (modifiers & GDK_LOCK_MASK) ? DILS_CAPS : 0;
-  evt.button     = button;
-  evt.buttons    = 0;
-  gettimeofday (&evt.timestamp, NULL);
-
-  _gdk_display->buffer->PostEvent (_gdk_display->buffer, DFB_EVENT(&evt));
-
-  return TRUE;
-}
diff --git a/gdk/directfb/gdkvisual-directfb.c b/gdk/directfb/gdkvisual-directfb.c
deleted file mode 100644 (file)
index fcbb1c3..0000000
+++ /dev/null
@@ -1,493 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-#include "gdkscreen.h"
-#include "gdkvisual.h"
-
-
-struct _GdkVisualClass
-{
-  GObjectClass parent_class;
-};
-
-
-static void                gdk_visual_decompose_mask  (gulong   mask,
-                                                       gint    *shift,
-                                                       gint    *prec);
-static GdkVisualDirectFB * gdk_directfb_visual_create (DFBSurfacePixelFormat  pixelformat);
-
-
-static DFBSurfacePixelFormat formats[] =
-{
-  DSPF_ARGB,
-  DSPF_LUT8,
-  DSPF_RGB32,
-  DSPF_RGB24,
-  DSPF_RGB16,
-  DSPF_ARGB1555,
-  DSPF_RGB332
-};
-
-GdkVisual         * system_visual = NULL;
-static GdkVisualDirectFB * visuals[G_N_ELEMENTS (formats) + 1] = { NULL };
-static gint                available_depths[G_N_ELEMENTS (formats) + 1] = {0};
-static GdkVisualType       available_types[G_N_ELEMENTS (formats) + 1]  = {0};
-
-
-static void
-gdk_visual_finalize (GObject *object)
-{
-  g_error ("A GdkVisual object was finalized. This should not happen");
-}
-
-static void
-gdk_visual_class_init (GObjectClass *class)
-{
-  class->finalize = gdk_visual_finalize;
-}
-
-GType
-gdk_visual_get_type (void)
-{
-  static GType object_type = 0;
-
-  if (!object_type)
-    {
-      const GTypeInfo object_info =
-      {
-        sizeof (GdkVisualClass),
-        (GBaseInitFunc) NULL,
-        (GBaseFinalizeFunc) NULL,
-        (GClassInitFunc) gdk_visual_class_init,
-        NULL,           /* class_finalize */
-        NULL,           /* class_data */
-        sizeof (GdkVisualDirectFB),
-        0,              /* n_preallocs */
-        (GInstanceInitFunc) NULL,
-      };
-
-      object_type = g_type_register_static (G_TYPE_OBJECT,
-                                            "GdkVisual",
-                                            &object_info, 0);
-    }
-
-  return object_type;
-}
-
-void
-_gdk_visual_init ()
-{
-  DFBDisplayLayerConfig  dlc;
-  DFBSurfaceDescription  desc;
-  IDirectFBSurface      *dest;
-  gint                   i, c;
-
-
-  _gdk_display->layer->GetConfiguration (_gdk_display->layer, &dlc);
-  g_assert( dlc.pixelformat != DSPF_UNKNOWN);
-
-  dest = gdk_display_dfb_create_surface(_gdk_display,dlc.pixelformat,8,8);
-  g_assert (dest != NULL);
-
-  /* We could provide all visuals since DirectFB allows us to mix
-     surface formats. Blitting with format conversion can however
-     be incredibly slow, so we've choosen to register only those
-     visuals that can be blitted to the display layer in hardware.
-
-     If you want to use a special pixelformat that is not registered
-     here, you can create it using the DirectFB-specific function
-     gdk_directfb_visual_by_format().
-     Note:
-     changed to do all formats but we should redo this code
-     to ensure the base format ARGB LUT8 RGB etc then add ones supported
-     by the hardware
-   */
-  for (i = 0; i < G_N_ELEMENTS (formats); i++)
-    {
-      IDirectFBSurface    *src;
-      DFBAccelerationMask  acc;
-
-      desc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
-      desc.width       = 8;
-      desc.height      = 8;
-      desc.pixelformat = formats[i];
-      //call direct so fail silently  is ok
-      if (_gdk_display->directfb->CreateSurface (_gdk_display->directfb,
-        &desc, &src) != DFB_OK) 
-        continue;
-
-      visuals[i] = gdk_directfb_visual_create (formats[i]);
-
-      dest->GetAccelerationMask (dest, src, &acc);
-
-      if (acc & DFXL_BLIT || formats[i] == dlc.pixelformat)
-        {
-                       system_visual = GDK_VISUAL (visuals[i]);
-        }
-
-      src->Release (src);
-    }
-
-  dest->Release (dest);
-
-  //fallback to ARGB must be supported
-  if (!system_visual)
-    {
-       g_assert (visuals[DSPF_ARGB] != NULL);
-       system_visual = GDK_VISUAL(visuals[DSPF_ARGB]);
-    }
-
-  g_assert (system_visual != NULL);
-}
-
-gint
-gdk_visual_get_best_depth (void)
-{
-  return system_visual->depth;
-}
-
-GdkVisualType
-gdk_visual_get_best_type (void)
-{
-  return system_visual->type;
-}
-
-GdkVisual*
-gdk_screen_get_system_visual (GdkScreen *screen)
-{
-  g_assert( system_visual);
-  return system_visual;
-}
-
-GdkVisual*
-gdk_visual_get_best (void)
-{
-  return system_visual;
-}
-
-GdkVisual*
-gdk_visual_get_best_with_depth (gint depth)
-{
-  gint i;
-
-  for (i = 0; visuals[i]; i++)
-    {
-      if( visuals[i] ) {
-        GdkVisual *visual = GDK_VISUAL (visuals[i]);
-
-        if (depth == visual->depth)
-            return visual;
-      }
-    }
-
-  return NULL;
-}
-
-GdkVisual*
-gdk_visual_get_best_with_type (GdkVisualType visual_type)
-{
-  gint i;
-
-  for (i = 0; visuals[i]; i++)
-    {
-      if( visuals[i] ) {
-        GdkVisual *visual = GDK_VISUAL (visuals[i]);
-
-        if (visual_type == visual->type)
-            return visual;
-      }
-    }
-
-  return NULL;
-}
-
-GdkVisual*
-gdk_visual_get_best_with_both (gint          depth,
-                               GdkVisualType visual_type)
-{
-  gint i;
-
-  for (i = 0; visuals[i]; i++)
-    {
-      if( visuals[i] ) {
-        GdkVisual *visual = GDK_VISUAL (visuals[i]);
-
-        if (depth == visual->depth && visual_type == visual->type)
-            return visual;
-      }
-    }
-
-  return system_visual;
-}
-
-void
-gdk_query_depths (gint **depths,
-                  gint  *count)
-{
-  gint i;
-
-  for (i = 0; available_depths[i]; i++)
-    ;
-
-  *count = i;
-  *depths = available_depths;
-}
-
-void
-gdk_query_visual_types (GdkVisualType **visual_types,
-                        gint           *count)
-{
-  gint i;
-
-  for (i = 0; available_types[i]; i++)
-    ;
-
-  *count = i;
-  *visual_types = available_types;
-}
-
-GList *
-gdk_screen_list_visuals (GdkScreen *screen)
-{
-  GList *list = NULL;
-  gint   i;
-
-  for (i = 0; visuals[i]; i++)
-   if( visuals[i] ) {
-        GdkVisual * vis = GDK_VISUAL(visuals[i]);
-        list = g_list_append (list,vis);
-   }
-
-  return list;
-}
-
-/**
- * gdk_directfb_visual_by_format:
- * @pixel_format: the pixel_format of the requested visual
- *
- * This function is specific to the DirectFB backend. It allows
- * to specify a GdkVisual by @pixel_format.
- *
- * At startup, only those visuals that can be blitted
- * hardware-accelerated are registered.  By using
- * gdk_directfb_visual_by_format() you can retrieve visuals that
- * don't match this criteria since this function will try to create
- * a new visual for the desired @pixel_format for you.
- *
- * Return value: a pointer to the GdkVisual or %NULL if the
- * pixel_format is unsupported.
- **/
-GdkVisual *
-gdk_directfb_visual_by_format (DFBSurfacePixelFormat pixel_format)
-{
-  gint i;
-
-  /* first check if one the registered visuals matches */
-  for (i = 0; visuals[i]; i++)
-    if ( visuals[i] && visuals[i]->format == pixel_format)
-      return GDK_VISUAL (visuals[i]);
-
-  /* none matched, try to create a new one for this pixel_format */
-  {
-    DFBSurfaceDescription  desc;
-    IDirectFBSurface      *test;
-
-    desc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
-    desc.width       = 8;
-    desc.height      = 8;
-    desc.pixelformat = pixel_format;
-
-    if ( _gdk_display->directfb->CreateSurface ( _gdk_display->directfb, &desc, &test) != DFB_OK)
-      return NULL;
-
-    test->Release (test);
-  }
-
-  return GDK_VISUAL(gdk_directfb_visual_create (pixel_format));
-}
-
-GdkScreen *
-gdk_visual_get_screen (GdkVisual *visual)
-{
-  g_return_val_if_fail (GDK_IS_VISUAL (visual), NULL);
-
-  return gdk_screen_get_default ();
-}
-
-static void
-gdk_visual_decompose_mask (gulong  mask,
-                           gint   *shift,
-                           gint   *prec)
-{
-  *shift = 0;
-  *prec  = 0;
-
-  while (!(mask & 0x1))
-    {
-      (*shift)++;
-      mask >>= 1;
-    }
-
-  while (mask & 0x1)
-    {
-      (*prec)++;
-      mask >>= 1;
-    }
-}
-
-static GdkVisualDirectFB *
-gdk_directfb_visual_create (DFBSurfacePixelFormat  pixelformat)
-{
-  GdkVisual *visual;
-  gint       i;
-
-  for (i = 0; i < G_N_ELEMENTS (formats); i++)
-    if (formats[i] == pixelformat)
-      break;
-
-  if (i ==  G_N_ELEMENTS (formats))
-    {
-      g_warning ("unsupported pixelformat");
-      return NULL;
-    }
-
-  visual = g_object_new (GDK_TYPE_VISUAL, NULL);
-
-  switch (pixelformat)
-    {
-    case DSPF_LUT8:
-      visual->type         = GDK_VISUAL_PSEUDO_COLOR;
-      visual->bits_per_rgb = 8;
-      break;
-
-    case DSPF_RGB332:
-      visual->type         = GDK_VISUAL_STATIC_COLOR;
-      visual->bits_per_rgb = 3;
-      break;
-
-    case DSPF_ARGB1555:
-      visual->type         = GDK_VISUAL_TRUE_COLOR;
-      visual->red_mask     = 0x00007C00;
-      visual->green_mask   = 0x000003E0;
-      visual->blue_mask    = 0x0000001F;
-      visual->bits_per_rgb = 5;
-      break;
-
-    case DSPF_RGB16:
-      visual->type         = GDK_VISUAL_TRUE_COLOR;
-      visual->red_mask     = 0x0000F800;
-      visual->green_mask   = 0x000007E0;
-      visual->blue_mask    = 0x0000001F;
-      visual->bits_per_rgb = 6;
-      break;
-
-    case DSPF_RGB24:
-    case DSPF_RGB32:
-    case DSPF_ARGB:
-      visual->type         = GDK_VISUAL_TRUE_COLOR;
-      visual->red_mask     = 0x00FF0000;
-      visual->green_mask   = 0x0000FF00;
-      visual->blue_mask    = 0x000000FF;
-      visual->bits_per_rgb = 8;
-      break;
-
-    default:
-      g_assert_not_reached ();
-    }
-
-#if G_BYTE_ORDER == G_BIG_ENDIAN
-  visual->byte_order = GDK_MSB_FIRST;
-#else
-  visual->byte_order = GDK_LSB_FIRST;
-#endif
-
-  visual->depth      = DFB_BITS_PER_PIXEL (pixelformat);
-
-  switch (visual->type)
-    {
-    case GDK_VISUAL_TRUE_COLOR:
-      gdk_visual_decompose_mask (visual->red_mask,
-                                 &visual->red_shift, &visual->red_prec);
-      gdk_visual_decompose_mask (visual->green_mask,
-                                 &visual->green_shift, &visual->green_prec);
-      gdk_visual_decompose_mask (visual->blue_mask,
-                                 &visual->blue_shift, &visual->blue_prec);
-
-      /* the number of possible levels per color component */
-      visual->colormap_size = 1 << MAX (visual->red_prec,
-                                        MAX (visual->green_prec,
-                                             visual->blue_prec));
-      break;
-
-    case GDK_VISUAL_STATIC_COLOR:
-    case GDK_VISUAL_PSEUDO_COLOR:
-      visual->colormap_size = 1 << visual->depth;
-
-      visual->red_mask    = 0;
-      visual->red_shift   = 0;
-      visual->red_prec    = 0;
-
-      visual->green_mask  = 0;
-      visual->green_shift = 0;
-      visual->green_prec  = 0;
-
-      visual->blue_mask   = 0;
-      visual->blue_shift  = 0;
-      visual->blue_prec   = 0;
-
-      break;
-
-    default:
-      g_assert_not_reached ();
-    }
-
-  ((GdkVisualDirectFB *)visual)->format = pixelformat;
-
-  for (i = 0; available_depths[i]; i++)
-    if (available_depths[i] == visual->depth)
-      break;
-  if (!available_depths[i])
-    available_depths[i] = visual->depth;
-
-  for (i = 0; available_types[i]; i++)
-    if (available_types[i] == visual->type)
-      break;
-  if (!available_types[i])
-    available_types[i] = visual->type;
-
-  return (GdkVisualDirectFB *) visual;
-}
diff --git a/gdk/directfb/gdkwindow-directfb.c b/gdk/directfb/gdkwindow-directfb.c
deleted file mode 100644 (file)
index 26b6aae..0000000
+++ /dev/null
@@ -1,2891 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- * Copyright (C) 1998-1999 Tor Lillqvist
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-#include "gdk.h"
-#include "gdkwindowimpl.h"
-#include "gdkwindow.h"
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-#include "gdkdisplay-directfb.h"
-
-#include "gdkinternals.h"
-#include "cairo.h"
-#include <assert.h>
-
-#include <direct/debug.h>
-
-#include <directfb_util.h>
-
-D_DEBUG_DOMAIN( GDKDFB_Crossing,  "GDKDFB/Crossing",  "GDK DirectFB Crossing Events" );
-D_DEBUG_DOMAIN( GDKDFB_Updates,   "GDKDFB/Updates",   "GDK DirectFB Updates" );
-D_DEBUG_DOMAIN( GDKDFB_Paintable, "GDKDFB/Paintable", "GDK DirectFB Paintable" );
-D_DEBUG_DOMAIN( GDKDFB_Window,    "GDKDFB/Window",    "GDK DirectFB Window" );
-
-
-static cairo_region_t * gdk_window_impl_directfb_get_visible_region (GdkDrawable *drawable);
-static void        gdk_window_impl_directfb_set_colormap       (GdkDrawable *drawable,
-                                                                GdkColormap *colormap);
-static void gdk_window_impl_directfb_init       (GdkWindowImplDirectFB      *window);
-static void gdk_window_impl_directfb_class_init (GdkWindowImplDirectFBClass *klass);
-static void gdk_window_impl_directfb_finalize   (GObject                    *object);
-
-static void gdk_window_impl_iface_init (GdkWindowImplIface *iface);
-static void gdk_directfb_window_destroy (GdkWindow *window,
-                                         gboolean   recursing,
-                                         gboolean   foreign_destroy);
-
-typedef struct
-{
-  GdkWindowChildChanged  changed;
-  GdkWindowChildGetPos   get_pos;
-  gpointer               user_data;
-} GdkWindowChildHandlerData;
-
-
-static GdkWindow *gdk_directfb_window_containing_pointer = NULL;
-static GdkWindow *gdk_directfb_focused_window            = NULL;
-static gpointer   parent_class                           = NULL;
-GdkWindow * _gdk_parent_root = NULL;
-
-static void gdk_window_impl_directfb_paintable_init (GdkPaintableIface *iface);
-
-
-GType
-gdk_window_impl_directfb_get_type (void)
-{
-  static GType object_type = 0;
-
-  if (!object_type)
-    {
-      const GTypeInfo object_info =
-        {
-          sizeof (GdkWindowImplDirectFBClass),
-          (GBaseInitFunc) NULL,
-          (GBaseFinalizeFunc) NULL,
-          (GClassInitFunc) gdk_window_impl_directfb_class_init,
-          NULL,           /* class_finalize */
-          NULL,           /* class_data */
-          sizeof (GdkWindowImplDirectFB),
-          0,              /* n_preallocs */
-          (GInstanceInitFunc) gdk_window_impl_directfb_init,
-        };
-
-      const GInterfaceInfo paintable_info =
-        {
-          (GInterfaceInitFunc) gdk_window_impl_directfb_paintable_init,
-          NULL,
-          NULL
-        };
-
-      const GInterfaceInfo window_impl_info =
-        {
-          (GInterfaceInitFunc) gdk_window_impl_iface_init,
-          NULL,
-          NULL
-        };
-
-      object_type = g_type_register_static (GDK_TYPE_DRAWABLE_IMPL_DIRECTFB,
-                                            "GdkWindowImplDirectFB",
-                                            &object_info, 0);
-      g_type_add_interface_static (object_type,
-                                   GDK_TYPE_PAINTABLE,
-                                   &paintable_info);
-
-      g_type_add_interface_static (object_type,
-                                   GDK_TYPE_WINDOW_IMPL,
-                                   &window_impl_info);
-    }
-
-  return object_type;
-}
-
-GType
-_gdk_window_impl_get_type (void)
-{
-  return gdk_window_impl_directfb_get_type ();
-}
-
-static void
-gdk_window_impl_directfb_init (GdkWindowImplDirectFB *impl)
-{
-  impl->drawable.width  = 1;
-  impl->drawable.height = 1;
-  //cannot use gdk_cursor_new here since gdk_display_get_default
-  //does not work yet.
-  impl->cursor          = gdk_cursor_new_for_display (GDK_DISPLAY_OBJECT(_gdk_display),GDK_LEFT_PTR);
-  impl->opacity         = 255;
-}
-
-static void
-gdk_window_impl_directfb_class_init (GdkWindowImplDirectFBClass *klass)
-{
-  GObjectClass     *object_class   = G_OBJECT_CLASS (klass);
-  GdkDrawableClass *drawable_class = GDK_DRAWABLE_CLASS (klass);
-
-  parent_class = g_type_class_peek_parent (klass);
-
-  object_class->finalize = gdk_window_impl_directfb_finalize;
-
-  drawable_class->set_colormap = gdk_window_impl_directfb_set_colormap;
-
-  /* Visible and clip regions are the same */
-
-  drawable_class->get_clip_region =
-    gdk_window_impl_directfb_get_visible_region;
-
-  drawable_class->get_visible_region =
-    gdk_window_impl_directfb_get_visible_region;
-}
-
-static void
-g_free_2nd (gpointer a,
-            gpointer b,
-            gpointer data)
-{
-  g_free (b);
-}
-
-static void
-gdk_window_impl_directfb_finalize (GObject *object)
-{
-  GdkWindowImplDirectFB *impl = GDK_WINDOW_IMPL_DIRECTFB (object);
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p ) <- %dx%d\n", G_STRFUNC, impl, impl->drawable.width, impl->drawable.height );
-
-  if (GDK_WINDOW_IS_MAPPED (impl->drawable.wrapper))
-    gdk_window_hide (impl->drawable.wrapper);
-
-  if (impl->cursor)
-    gdk_cursor_unref (impl->cursor);
-
-  if (impl->properties)
-    {
-      g_hash_table_foreach (impl->properties, g_free_2nd, NULL);
-      g_hash_table_destroy (impl->properties);
-    }
-  if (impl->window)
-    {
-      gdk_directfb_window_id_table_remove (impl->dfb_id);
-         /* native window resource must be release before we can finalize !*/
-      impl->window = NULL;
-    }
-
-  if (G_OBJECT_CLASS (parent_class)->finalize)
-    G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-static cairo_region_t*
-gdk_window_impl_directfb_get_visible_region (GdkDrawable *drawable)
-{
-  GdkDrawableImplDirectFB *priv = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
-  GdkRectangle             rect = { 0, 0, 0, 0 };
-  DFBRectangle             drect = { 0, 0, 0, 0 };
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, drawable );
-
-  if (priv->surface)
-  priv->surface->GetVisibleRectangle (priv->surface, &drect);
-  rect.x= drect.x;
-  rect.y= drect.y;
-  rect.width=drect.w;
-  rect.height=drect.h;
-
-  D_DEBUG_AT( GDKDFB_Window, "  -> returning %4d,%4d-%4dx%4d\n", drect.x, drect.y, drect.w, drect.h );
-
-  return cairo_region_create_rectangle (&rect);
-}
-
-static void
-gdk_window_impl_directfb_set_colormap (GdkDrawable *drawable,
-                                       GdkColormap *colormap)
-{
-  GDK_DRAWABLE_CLASS (parent_class)->set_colormap (drawable, colormap);
-
-  if (colormap)
-    {
-       GdkDrawableImplDirectFB *priv = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
-
-       if (priv->surface)
-        {
-          IDirectFBPalette *palette = gdk_directfb_colormap_get_palette (colormap);
-
-           if (palette)
-             priv->surface->SetPalette (priv->surface, palette);
-         }
-    }
-}
-
-
-static gboolean
-create_directfb_window (GdkWindowImplDirectFB *impl,
-                        DFBWindowDescription  *desc,
-                        DFBWindowOptions       window_options)
-{
-  DFBResult        ret;
-  IDirectFBWindow *window;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %4dx%4d, caps 0x%08x )\n", G_STRFUNC, desc->width, desc->height, desc->caps );
-
-  ret = _gdk_display->layer->CreateWindow (_gdk_display->layer, desc, &window);
-
-  if (ret != DFB_OK)
-    {
-      DirectFBError ("gdk_window_new: Layer->CreateWindow failed", ret);
-      g_assert (0);
-      return FALSE;
-    }
-
-  if ((desc->flags & DWDESC_CAPS) && (desc->caps & DWCAPS_INPUTONLY))
-  {
-    impl->drawable.surface = NULL;
-  } else
-    window->GetSurface (window, &impl->drawable.surface);
-
-  if (window_options)
-    {
-      DFBWindowOptions options;
-      window->GetOptions (window, &options);
-      window->SetOptions (window,  options | window_options);
-    }
-
-  impl->window = window;
-
-#ifndef GDK_DIRECTFB_NO_EXPERIMENTS
-  //direct_log_printf( NULL, "Initializing (window %p, wimpl %p)\n", win, impl );
-
-  dfb_updates_init( &impl->flips, impl->flip_regions, G_N_ELEMENTS(impl->flip_regions) );
-#endif
-
-  return TRUE;
-}
-
-void
-_gdk_windowing_window_init (void)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-  DFBDisplayLayerConfig  dlc;
-
-  g_assert (_gdk_parent_root == NULL);
-
-  _gdk_display->layer->GetConfiguration (_gdk_display->layer, &dlc);
-
-  _gdk_parent_root = g_object_new (GDK_TYPE_WINDOW, NULL);
-
-  private = GDK_WINDOW_OBJECT (_gdk_parent_root);
-  private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
-  private->impl_window = private;
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-  private->window_type = GDK_WINDOW_ROOT;
-  private->state       = 0;
-  private->children    = NULL;
-  private->viewable = TRUE;
-//  impl->drawable.paint_region   = NULL;
-  impl->gdkWindow      = _gdk_parent_root;
-  impl->window           = NULL;
-  impl->drawable.abs_x   = 0;
-  impl->drawable.abs_y   = 0;
-  impl->drawable.width   = dlc.width;
-  impl->drawable.height  = dlc.height;
-  impl->drawable.wrapper = GDK_DRAWABLE (private);
-  /* custom root window init */
-  {
-    DFBWindowDescription   desc;
-    desc.flags = 0;
-       /*XXX I must do this now its a bug  ALPHA ROOT*/
-
-    desc.flags = DWDESC_CAPS;
-    desc.caps = 0;
-    desc.caps  |= DWCAPS_NODECORATION;
-    desc.caps  |= DWCAPS_ALPHACHANNEL;
-    desc.flags |= ( DWDESC_WIDTH | DWDESC_HEIGHT |
-                      DWDESC_POSX  | DWDESC_POSY );
-    desc.posx   = 0;
-    desc.posy   = 0;
-    desc.width  = dlc.width;
-    desc.height = dlc.height;
-    create_directfb_window (impl,&desc,0);
-       g_assert(impl->window != NULL);
-    g_assert(impl->drawable.surface != NULL );
-  }
-  impl->drawable.surface->GetPixelFormat(impl->drawable.surface,&impl->drawable.format);
-  private->depth = DFB_BITS_PER_PIXEL(impl->drawable.format);
-
-  _gdk_window_update_size (_gdk_parent_root);
-
-  /*
-       Now we can set up the system colormap
-  */
-  gdk_drawable_set_colormap (GDK_DRAWABLE (_gdk_parent_root),gdk_colormap_get_system());
-}
-
-void
-_gdk_window_impl_new (GdkWindow     *window,
-                      GdkWindow     *real_parent,
-                      GdkScreen     *screen,
-                      GdkVisual     *visual,
-                      GdkEventMask   event_mask,
-                      GdkWindowAttr *attributes,
-                      gint           attributes_mask)
-{
-  GdkWindowObject       *private;
-  GdkWindowObject       *parent_private;
-  GdkWindowImplDirectFB *impl;
-  GdkWindowImplDirectFB *parent_impl;
-  DFBWindowDescription   desc;
-
-  impl = g_object_new (_gdk_window_impl_get_type (), NULL);
-  impl->drawable.wrapper = GDK_DRAWABLE (window);
-  impl->gdkWindow = window;
-
-  private = GDK_WINDOW_OBJECT (window);
-  private->impl = (GdkDrawable *)impl;
-
-  private->x = (attributes_mask & GDK_WA_X) ? attributes->x : 0;
-  private->y = (attributes_mask & GDK_WA_Y) ? attributes->y : 0;
-
-  parent_private = GDK_WINDOW_OBJECT (real_parent);
-  parent_impl = GDK_WINDOW_IMPL_DIRECTFB (parent_private->impl);
-
-  private->parent = parent_private;
-
-  _gdk_directfb_calc_abs (window);
-
-  impl->drawable.width  = MAX (1, attributes->width);
-  impl->drawable.height = MAX (1, attributes->height);
-
-  private->window_type = attributes->window_type;
-
-  desc.flags = 0;
-
-  switch (attributes->wclass)
-    {
-    case GDK_INPUT_OUTPUT:
-      private->input_only = FALSE;
-
-      desc.flags |= DWDESC_PIXELFORMAT;
-      desc.pixelformat = ((GdkVisualDirectFB *)visual)->format;
-
-      if (DFB_PIXELFORMAT_HAS_ALPHA (desc.pixelformat))
-        {
-          desc.flags |= DWDESC_CAPS;
-          desc.caps = DWCAPS_ALPHACHANNEL;
-        }
-
-      break;
-
-    case GDK_INPUT_ONLY:
-      private->input_only = TRUE;
-      desc.flags |= DWDESC_CAPS;
-      desc.caps = DWCAPS_INPUTONLY;
-      break;
-
-    default:
-      g_warning ("_gdk_window_impl_new: unsupported window class\n");
-      _gdk_window_destroy (window, FALSE);
-      return;
-    }
-
-  switch (private->window_type)
-    {
-    case GDK_WINDOW_TOPLEVEL:
-    case GDK_WINDOW_DIALOG:
-    case GDK_WINDOW_TEMP:
-      desc.flags |= (DWDESC_WIDTH | DWDESC_HEIGHT |
-                     DWDESC_POSX  | DWDESC_POSY);
-      desc.posx   = private->x;
-      desc.posy   = private->y;
-      desc.width  = impl->drawable.width;
-      desc.height = impl->drawable.height;
-
-      if (!create_directfb_window (impl, &desc, DWOP_NONE))
-        {
-          g_assert (0);
-          _gdk_window_destroy (window, FALSE);
-
-          return;
-        }
-
-      if (desc.caps != DWCAPS_INPUTONLY)
-        {
-          impl->window->SetOpacity (impl->window, 0x00);
-        }
-
-      break;
-
-    case GDK_WINDOW_CHILD:
-      impl->window = NULL;
-
-      if (!private->input_only && parent_impl->drawable.surface)
-        {
-          DFBRectangle rect = { private->x,
-                                private->y,
-                                impl->drawable.width,
-                                impl->drawable.height };
-          parent_impl->drawable.surface->GetSubSurface (parent_impl->drawable.surface,
-                                                        &rect,
-                                                        &impl->drawable.surface);
-        }
-
-      break;
-
-    default:
-      g_warning ("_gdk_window_impl_new: unsupported window type: %d",
-                 private->window_type);
-      _gdk_window_destroy (window, FALSE);
-
-      return;
-    }
-
-  if (impl->drawable.surface)
-    {
-      GdkColormap *colormap;
-
-      impl->drawable.surface->GetPixelFormat (impl->drawable.surface,
-                                              &impl->drawable.format);
-
-      private->depth = DFB_BITS_PER_PIXEL (impl->drawable.format);
-
-      if ((attributes_mask & GDK_WA_COLORMAP) && attributes->colormap)
-        {
-          colormap = attributes->colormap;
-        }
-      else
-        {
-          if (gdk_visual_get_system () == visual)
-            colormap = gdk_colormap_get_system ();
-          else
-            colormap = gdk_colormap_new (visual, FALSE);
-        }
-
-      gdk_drawable_set_colormap (GDK_DRAWABLE (window), colormap);
-    }
-  else
-    {
-      impl->drawable.format = ((GdkVisualDirectFB *)visual)->format;
-      private->depth = visual->depth;
-    }
-
-  gdk_window_set_cursor (window,
-                         ((attributes_mask & GDK_WA_CURSOR) ?
-                          (attributes->cursor) : NULL));
-
-  if (parent_private)
-    parent_private->children = g_list_prepend (parent_private->children,
-                                               window);
-
-  /* we hold a reference count on ourself */
-  g_object_ref (window);
-
-  if (impl->window)
-    {
-      impl->window->GetID (impl->window, &impl->dfb_id);
-      gdk_directfb_window_id_table_insert (impl->dfb_id, window);
-      gdk_directfb_event_windows_add (window);
-    }
-
-  if (attributes_mask & GDK_WA_TYPE_HINT)
-    gdk_window_set_type_hint (window, attributes->type_hint);
-}
-
-void
-_gdk_windowing_window_destroy_foreign (GdkWindow *window)
-{
-  /* It's somebody else's window, but in our hierarchy,
-   * so reparent it to the root window, and then send
-   * it a delete event, as if we were a WM
-   */
-  gdk_directfb_window_destroy (window, TRUE, TRUE);
-}
-
-static void
-gdk_directfb_window_destroy (GdkWindow *window,
-                             gboolean   recursing,
-                             gboolean   foreign_destroy)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p, %srecursing, %sforeign )\n", G_STRFUNC, window,
-              recursing ? "" : "not ", foreign_destroy ? "" : "no " );
-
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-  _gdk_selection_window_destroyed (window);
-  gdk_directfb_event_windows_remove (window);
-
-  if (window == _gdk_directfb_pointer_grab_window)
-    gdk_pointer_ungrab (GDK_CURRENT_TIME);
-  if (window == _gdk_directfb_keyboard_grab_window)
-    gdk_keyboard_ungrab (GDK_CURRENT_TIME);
-
-  if (window == gdk_directfb_focused_window)
-    gdk_directfb_change_focus (NULL);
-
-  if (impl->drawable.surface) {
-    GdkDrawableImplDirectFB *dimpl = GDK_DRAWABLE_IMPL_DIRECTFB (private->impl);
-    if(dimpl->cairo_surface) {
-      cairo_surface_destroy(dimpl->cairo_surface);
-      dimpl->cairo_surface= NULL;
-    }
-    impl->drawable.surface->Release (impl->drawable.surface);
-    impl->drawable.surface = NULL;
-  }
-
-  if (!recursing && !foreign_destroy && impl->window ) {
-       impl->window->SetOpacity (impl->window,0);
-               impl->window->Close(impl->window);
-       impl->window->Release(impl->window);
-        impl->window = NULL;
-  }
-}
-
-/* This function is called when the window is really gone.
- */
-void
-gdk_window_destroy_notify (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, window );
-
-  if (!GDK_WINDOW_DESTROYED (window))
-    {
-      if (GDK_WINDOW_TYPE(window) != GDK_WINDOW_FOREIGN)
-       g_warning ("GdkWindow %p unexpectedly destroyed", window);
-
-      _gdk_window_destroy (window, TRUE);
-    }
-   g_object_unref (window);
-}
-
-/* Focus follows pointer */
-GdkWindow *
-gdk_directfb_window_find_toplevel (GdkWindow *window)
-{
-  while (window && window != _gdk_parent_root)
-    {
-      GdkWindow *parent = (GdkWindow *) (GDK_WINDOW_OBJECT (window))->parent;
-
-      if ((parent == _gdk_parent_root) && GDK_WINDOW_IS_MAPPED (window))
-        return window;
-
-      window = parent;
-    }
-
-  return _gdk_parent_root;
-}
-
-GdkWindow *
-gdk_directfb_window_find_focus (void)
-{
-  if (_gdk_directfb_keyboard_grab_window)
-    return _gdk_directfb_keyboard_grab_window;
-
-  if (!gdk_directfb_focused_window)
-    gdk_directfb_focused_window = g_object_ref (_gdk_parent_root);
-
-  return gdk_directfb_focused_window;
-}
-
-void
-gdk_directfb_change_focus (GdkWindow *new_focus_window)
-{
-  GdkEventFocus *event;
-  GdkWindow     *old_win;
-  GdkWindow     *new_win;
-  GdkWindow     *event_win;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, new_focus_window );
-
-  /* No focus changes while the pointer is grabbed */
-  if (_gdk_directfb_pointer_grab_window)
-    return;
-
-  old_win = gdk_directfb_focused_window;
-  new_win = gdk_directfb_window_find_toplevel (new_focus_window);
-
-  if (old_win == new_win)
-    return;
-
-  if (old_win)
-    {
-      event_win = gdk_directfb_keyboard_event_window (old_win,
-                                                      GDK_FOCUS_CHANGE);
-      if (event_win)
-        {
-          event = (GdkEventFocus *) gdk_directfb_event_make (event_win,
-                                                             GDK_FOCUS_CHANGE);
-          event->in = FALSE;
-        }
-    }
-
-  event_win = gdk_directfb_keyboard_event_window (new_win,
-                                                  GDK_FOCUS_CHANGE);
-  if (event_win)
-    {
-      event = (GdkEventFocus *) gdk_directfb_event_make (event_win,
-                                                         GDK_FOCUS_CHANGE);
-      event->in = TRUE;
-    }
-
-  if (gdk_directfb_focused_window)
-    g_object_unref (gdk_directfb_focused_window);
-  gdk_directfb_focused_window = g_object_ref (new_win);
-}
-
-void
-gdk_window_set_accept_focus (GdkWindow *window,
-                             gboolean accept_focus)
-{
-  GdkWindowObject *private;
-  g_return_if_fail (window != NULL);
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  private = (GdkWindowObject *)window;
-
-  accept_focus = accept_focus != FALSE;
-
-  if (private->accept_focus != accept_focus)
-    private->accept_focus = accept_focus;
-
-}
-
-void
-gdk_window_set_focus_on_map (GdkWindow *window,
-                             gboolean focus_on_map)
-{
-  GdkWindowObject *private;
-  g_return_if_fail (window != NULL);
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  private = (GdkWindowObject *)window;
-
-  focus_on_map = focus_on_map != FALSE;
-
-  if (private->focus_on_map != focus_on_map)
-    private->focus_on_map = focus_on_map;
-}
-
-static gboolean
-gdk_directfb_window_raise (GdkWindow *window)
-{
-  GdkWindowObject *parent;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, window );
-
-  parent = GDK_WINDOW_OBJECT (window)->parent;
-
-  if (parent->children->data == window)
-    return FALSE;
-
-  parent->children = g_list_remove (parent->children, window);
-  parent->children = g_list_prepend (parent->children, window);
-
-  return TRUE;
-}
-
-static void
-gdk_directfb_window_lower (GdkWindow *window)
-{
-  GdkWindowObject *parent;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, window );
-
-  parent = GDK_WINDOW_OBJECT (window)->parent;
-
-  parent->children = g_list_remove (parent->children, window);
-  parent->children = g_list_append (parent->children, window);
-}
-
-static gboolean
-all_parents_shown (GdkWindowObject *private)
-{
-  while (GDK_WINDOW_IS_MAPPED (private))
-    {
-      if (private->parent)
-        private = GDK_WINDOW_OBJECT (private)->parent;
-      else
-        return TRUE;
-    }
-
-  return FALSE;
-}
-
-static void
-send_map_events (GdkWindowObject *private)
-{
-  GList     *list;
-  GdkWindow *event_win;
-
-  if (!GDK_WINDOW_IS_MAPPED (private))
-    return;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, private );
-
-  event_win = gdk_directfb_other_event_window ((GdkWindow *) private, GDK_MAP);
-  if (event_win)
-    gdk_directfb_event_make (event_win, GDK_MAP);
-
-  for (list = private->children; list; list = list->next)
-    send_map_events (list->data);
-}
-
-static GdkWindow *
-gdk_directfb_find_common_ancestor (GdkWindow *win1,
-                                   GdkWindow *win2)
-{
-  GdkWindowObject *a;
-  GdkWindowObject *b;
-
-  for (a = GDK_WINDOW_OBJECT (win1); a; a = a->parent)
-    for (b = GDK_WINDOW_OBJECT (win2); b; b = b->parent)
-      {
-        if (a == b)
-          return GDK_WINDOW (a);
-      }
-
-  return NULL;
-}
-
-void
-gdk_directfb_window_send_crossing_events (GdkWindow       *src,
-                                          GdkWindow       *dest,
-                                          GdkCrossingMode  mode)
-{
-  GdkWindow       *c;
-  GdkWindow       *win, *last, *next;
-  GdkEvent        *event;
-  gint             x, y, x_int, y_int;
-  GdkModifierType  modifiers;
-  GSList          *path, *list;
-  gboolean         non_linear;
-  GdkWindow       *a;
-  GdkWindow       *b;
-  GdkWindow       *event_win;
-
-  D_DEBUG_AT( GDKDFB_Crossing, "%s( %p -> %p, %d )\n", G_STRFUNC, src, dest, mode );
-
-  /* Do a possible cursor change before checking if we need to
-     generate crossing events so cursor changes due to pointer
-     grabs work correctly. */
-  {
-    static GdkCursorDirectFB *last_cursor = NULL;
-
-    GdkWindowObject       *private = GDK_WINDOW_OBJECT (dest);
-    GdkWindowImplDirectFB *impl    = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-    GdkCursorDirectFB     *cursor;
-
-    if (_gdk_directfb_pointer_grab_cursor)
-      cursor = (GdkCursorDirectFB*) _gdk_directfb_pointer_grab_cursor;
-    else
-      cursor = (GdkCursorDirectFB*) impl->cursor;
-
-    if (cursor != last_cursor)
-      {
-        win     = gdk_directfb_window_find_toplevel (dest);
-        private = GDK_WINDOW_OBJECT (win);
-        impl    = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-        if (impl->window)
-          impl->window->SetCursorShape (impl->window,
-                                        cursor->shape,
-                                        cursor->hot_x, cursor->hot_y);
-        last_cursor = cursor;
-      }
-  }
-
-  if (dest == gdk_directfb_window_containing_pointer) {
-    D_DEBUG_AT( GDKDFB_Crossing, "  -> already containing the pointer\n" );
-    return;
-  }
-
-  if (gdk_directfb_window_containing_pointer == NULL)
-    gdk_directfb_window_containing_pointer = g_object_ref (_gdk_parent_root);
-
-  if (src)
-    a = src;
-  else
-    a = gdk_directfb_window_containing_pointer;
-
-  b = dest;
-
-  if (a == b) {
-    D_DEBUG_AT( GDKDFB_Crossing, "  -> src == dest\n" );
-    return;
-  }
-
-  /* gdk_directfb_window_containing_pointer might have been destroyed.
-   * The refcount we hold on it should keep it, but it's parents
-   * might have died.
-   */
-  if (GDK_WINDOW_DESTROYED (a)) {
-    D_DEBUG_AT( GDKDFB_Crossing, "  -> src is destroyed!\n" );
-    a = _gdk_parent_root;
-  }
-
-  gdk_directfb_mouse_get_info (&x, &y, &modifiers);
-
-  c = gdk_directfb_find_common_ancestor (a, b);
-
-  D_DEBUG_AT( GDKDFB_Crossing, "  -> common ancestor %p\n", c );
-
-  non_linear = (c != a) && (c != b);
-
-  D_DEBUG_AT( GDKDFB_Crossing, "  -> non_linear: %s\n", non_linear ? "YES" : "NO" );
-
-  event_win = gdk_directfb_pointer_event_window (a, GDK_LEAVE_NOTIFY);
-  if (event_win)
-    {
-      D_DEBUG_AT( GDKDFB_Crossing, "  -> sending LEAVE to src\n" );
-
-      event = gdk_directfb_event_make (event_win, GDK_LEAVE_NOTIFY);
-      event->crossing.subwindow = NULL;
-
-      gdk_window_get_origin (a, &x_int, &y_int);
-
-      event->crossing.x      = x - x_int;
-      event->crossing.y      = y - y_int;
-      event->crossing.x_root = x;
-      event->crossing.y_root = y;
-      event->crossing.mode   = mode;
-
-      if (non_linear)
-        event->crossing.detail = GDK_NOTIFY_NONLINEAR;
-      else if (c == a)
-        event->crossing.detail = GDK_NOTIFY_INFERIOR;
-      else
-        event->crossing.detail = GDK_NOTIFY_ANCESTOR;
-
-      event->crossing.focus = FALSE;
-      event->crossing.state = modifiers;
-
-      D_DEBUG_AT( GDKDFB_Crossing, "  => LEAVE (%p/%p) at %4f,%4f (%4f,%4f) mode %d, detail %d\n",
-                  event_win, a,
-                  event->crossing.x, event->crossing.y, event->crossing.x_root, event->crossing.y_root,
-                  event->crossing.mode, event->crossing.detail );
-    }
-
-   /* Traverse up from a to (excluding) c */
-  if (c != a)
-    {
-      last = a;
-      win = GDK_WINDOW (GDK_WINDOW_OBJECT (a)->parent);
-      while (win != c)
-        {
-          event_win =
-            gdk_directfb_pointer_event_window (win, GDK_LEAVE_NOTIFY);
-
-          if (event_win)
-            {
-              event = gdk_directfb_event_make (event_win, GDK_LEAVE_NOTIFY);
-
-              event->crossing.subwindow = g_object_ref (last);
-
-              gdk_window_get_origin (win, &x_int, &y_int);
-
-              event->crossing.x      = x - x_int;
-              event->crossing.y      = y - y_int;
-              event->crossing.x_root = x;
-              event->crossing.y_root = y;
-              event->crossing.mode   = mode;
-
-              if (non_linear)
-                event->crossing.detail = GDK_NOTIFY_NONLINEAR_VIRTUAL;
-              else
-                event->crossing.detail = GDK_NOTIFY_VIRTUAL;
-
-              event->crossing.focus = FALSE;
-              event->crossing.state = modifiers;
-
-              D_DEBUG_AT( GDKDFB_Crossing, "  -> LEAVE (%p/%p) at %4f,%4f (%4f,%4f) mode %d, detail %d\n",
-                          event_win, win,
-                          event->crossing.x, event->crossing.y, event->crossing.x_root, event->crossing.y_root,
-                          event->crossing.mode, event->crossing.detail );
-            }
-
-          last = win;
-          win = GDK_WINDOW (GDK_WINDOW_OBJECT (win)->parent);
-        }
-    }
-
-  /* Traverse down from c to b */
-  if (c != b)
-    {
-      path = NULL;
-      win = GDK_WINDOW (GDK_WINDOW_OBJECT (b)->parent);
-      while (win != c)
-        {
-          path = g_slist_prepend (path, win);
-          win = GDK_WINDOW (GDK_WINDOW_OBJECT (win)->parent);
-        }
-
-      list = path;
-      while (list)
-        {
-          win = GDK_WINDOW (list->data);
-          list = g_slist_next (list);
-
-          if (list)
-            next = GDK_WINDOW (list->data);
-          else
-            next = b;
-
-          event_win =
-            gdk_directfb_pointer_event_window (win, GDK_ENTER_NOTIFY);
-
-          if (event_win)
-            {
-              event = gdk_directfb_event_make (event_win, GDK_ENTER_NOTIFY);
-
-              event->crossing.subwindow = g_object_ref (next);
-
-              gdk_window_get_origin (win, &x_int, &y_int);
-
-              event->crossing.x      = x - x_int;
-              event->crossing.y      = y - y_int;
-              event->crossing.x_root = x;
-              event->crossing.y_root = y;
-              event->crossing.mode   = mode;
-
-              if (non_linear)
-                event->crossing.detail = GDK_NOTIFY_NONLINEAR_VIRTUAL;
-              else
-                event->crossing.detail = GDK_NOTIFY_VIRTUAL;
-
-              event->crossing.focus = FALSE;
-              event->crossing.state = modifiers;
-
-              D_DEBUG_AT( GDKDFB_Crossing, "  -> ENTER (%p/%p) at %4f,%4f (%4f,%4f) mode %d, detail %d\n",
-                          event_win, win,
-                          event->crossing.x, event->crossing.y, event->crossing.x_root, event->crossing.y_root,
-                          event->crossing.mode, event->crossing.detail );
-            }
-        }
-
-      g_slist_free (path);
-    }
-
-  event_win = gdk_directfb_pointer_event_window (b, GDK_ENTER_NOTIFY);
-  if (event_win)
-    {
-      event = gdk_directfb_event_make (event_win, GDK_ENTER_NOTIFY);
-
-      event->crossing.subwindow = NULL;
-
-      gdk_window_get_origin (b, &x_int, &y_int);
-
-      event->crossing.x      = x - x_int;
-      event->crossing.y      = y - y_int;
-      event->crossing.x_root = x;
-      event->crossing.y_root = y;
-      event->crossing.mode   = mode;
-
-      if (non_linear)
-        event->crossing.detail = GDK_NOTIFY_NONLINEAR;
-      else if (c==a)
-        event->crossing.detail = GDK_NOTIFY_ANCESTOR;
-      else
-        event->crossing.detail = GDK_NOTIFY_INFERIOR;
-
-      event->crossing.focus = FALSE;
-      event->crossing.state = modifiers;
-
-      D_DEBUG_AT( GDKDFB_Crossing, "  => ENTER (%p/%p) at %4f,%4f (%4f,%4f) mode %d, detail %d\n",
-                  event_win, b,
-                  event->crossing.x, event->crossing.y, event->crossing.x_root, event->crossing.y_root,
-                  event->crossing.mode, event->crossing.detail );
-    }
-
-  if (mode != GDK_CROSSING_GRAB)
-    {
-      //this seems to cause focus to change as the pointer moves yuck
-      //gdk_directfb_change_focus (b);
-      if (b != gdk_directfb_window_containing_pointer)
-        {
-          g_object_unref (gdk_directfb_window_containing_pointer);
-          gdk_directfb_window_containing_pointer = g_object_ref (b);
-        }
-    }
-}
-
-static void
-show_window_internal (GdkWindow *window,
-                      gboolean   raise)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-  GdkWindow             *mousewin;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p, %sraise )\n", G_STRFUNC, window, raise ? "" : "no " );
-
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-  if (!private->destroyed && !GDK_WINDOW_IS_MAPPED (private))
-    {
-      private->state &= ~GDK_WINDOW_STATE_WITHDRAWN;
-
-      if (raise)
-        gdk_window_raise (window);
-
-      if (all_parents_shown (GDK_WINDOW_OBJECT (private)->parent))
-        {
-          send_map_events (private);
-
-          mousewin = gdk_window_at_pointer (NULL, NULL);
-          gdk_directfb_window_send_crossing_events (NULL, mousewin,
-                                                    GDK_CROSSING_NORMAL);
-
-          if (private->input_only)
-            return;
-
-          gdk_window_invalidate_rect (window, NULL, TRUE);
-        }
-    }
-
-  if (impl->window)
-    {
-      if (gdk_directfb_apply_focus_opacity)
-       impl->window->SetOpacity (impl->window,
-                                 (impl->opacity >> 1) + (impl->opacity >> 2));
-      else
-       impl->window->SetOpacity (impl->window, impl->opacity);
-         /* if its the first window focus it */
-    }
-}
-
-static void
-gdk_directfb_window_show (GdkWindow *window,
-                          gboolean   raise)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, window );
-
-  show_window_internal (window, raise);
-}
-
-static void
-gdk_directfb_window_hide (GdkWindow *window)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-  GdkWindow             *mousewin;
-  GdkWindow             *event_win;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, window );
-
-  private = GDK_WINDOW_OBJECT (window);
-  impl    = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-  if (impl->window)
-    impl->window->SetOpacity (impl->window, 0);
-
-  if (!private->destroyed && GDK_WINDOW_IS_MAPPED (private))
-    {
-      GdkEvent *event;
-
-      private->state |= GDK_WINDOW_STATE_WITHDRAWN;
-
-      if (!private->input_only && private->parent)
-        {
-          gdk_window_clear_area (GDK_WINDOW (private->parent),
-                                 private->x,
-                                 private->y,
-                                 impl->drawable.width,
-                                 impl->drawable.height);
-        }
-
-      event_win = gdk_directfb_other_event_window (window, GDK_UNMAP);
-      if (event_win)
-        event = gdk_directfb_event_make (event_win, GDK_UNMAP);
-
-      mousewin = gdk_window_at_pointer (NULL, NULL);
-      gdk_directfb_window_send_crossing_events (NULL,
-                                                mousewin,
-                                                GDK_CROSSING_NORMAL);
-
-      if (window == _gdk_directfb_pointer_grab_window)
-        gdk_pointer_ungrab (GDK_CURRENT_TIME);
-      if (window == _gdk_directfb_keyboard_grab_window)
-        gdk_keyboard_ungrab (GDK_CURRENT_TIME);
-    }
-}
-
-static void
-gdk_directfb_window_withdraw (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  /* for now this should be enough */
-  gdk_window_hide (window);
-}
-
-void
-_gdk_directfb_move_resize_child (GdkWindow *window,
-                                 gint       x,
-                                 gint       y,
-                                 gint       width,
-                                 gint       height)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-  GdkWindowImplDirectFB *parent_impl;
-  GList                 *list;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  private = GDK_WINDOW_OBJECT (window);
-  impl    = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-  private->x = x;
-  private->y = y;
-
-  impl->drawable.width  = width;
-  impl->drawable.height = height;
-
-  if (!private->input_only)
-    {
-      if (impl->drawable.surface)
-        {
-          if (impl->drawable.cairo_surface)
-            {
-              cairo_surface_destroy (impl->drawable.cairo_surface);
-              impl->drawable.cairo_surface = NULL;
-            }
-
-          impl->drawable.surface->Release (impl->drawable.surface);
-          impl->drawable.surface = NULL;
-        }
-
-      parent_impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (private->parent)->impl);
-
-      if (parent_impl->drawable.surface)
-        {
-          DFBRectangle rect = { x, y, width, height };
-
-          parent_impl->drawable.surface->GetSubSurface (parent_impl->drawable.surface,
-                                                        &rect,
-                                                        &impl->drawable.surface);
-        }
-    }
-
-  for (list = private->children; list; list = list->next)
-    {
-      private = GDK_WINDOW_OBJECT (list->data);
-      impl  = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-      _gdk_directfb_move_resize_child (list->data,
-                                       private->x, private->y,
-                                       impl->drawable.width, impl->drawable.height);
-    }
-}
-
-static  void
-gdk_directfb_window_move (GdkWindow *window,
-                          gint       x,
-                          gint       y)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  private = GDK_WINDOW_OBJECT (window);
-  impl    = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-  if (impl->window)
-    {
-      private->x = x;
-      private->y = y;
-      impl->window->MoveTo (impl->window, x, y);
-    }
-  else
-    {
-         gint width=impl->drawable.width;
-         gint height=impl->drawable.height;
-      GdkRectangle  old =
-      { private->x, private->y,width,height };
-
-      _gdk_directfb_move_resize_child (window, x, y, width, height);
-      _gdk_directfb_calc_abs (window);
-
-      if (GDK_WINDOW_IS_MAPPED (private))
-        {
-          GdkWindow    *mousewin;
-          GdkRectangle  new = { x, y, width, height };
-
-          gdk_rectangle_union (&new, &old, &new);
-          gdk_window_invalidate_rect (GDK_WINDOW (private->parent), &new,TRUE);
-
-          /* The window the pointer is in might have changed */
-          mousewin = gdk_window_at_pointer (NULL, NULL);
-          gdk_directfb_window_send_crossing_events (NULL, mousewin,
-                                                    GDK_CROSSING_NORMAL);
-        }
-    }
-}
-
-static void
-gdk_directfb_window_move_resize (GdkWindow *window,
-                                 gboolean   with_move,
-                                 gint       x,
-                                 gint       y,
-                                 gint       width,
-                                 gint       height)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-  if (with_move && (width < 0 && height < 0))
-    {
-      gdk_directfb_window_move (window, x, y);
-      return;
-    }
-
-  if (width < 1)
-    width = 1;
-  if (height < 1)
-    height = 1;
-
-  if (private->destroyed ||
-      (private->x == x  &&  private->y == y  &&
-       impl->drawable.width == width  &&  impl->drawable.height == height))
-    return;
-
-  if (private->parent && (private->parent->window_type != GDK_WINDOW_CHILD))
-    {
-      GdkWindowChildHandlerData *data;
-
-      data = g_object_get_data (G_OBJECT (private->parent),
-                                "gdk-window-child-handler");
-
-      if (data &&
-          (*data->changed) (window, x, y, width, height, data->user_data))
-        return;
-    }
-
-  if (impl->drawable.width == width  &&  impl->drawable.height == height)
-    {
-      if (with_move)
-        gdk_directfb_window_move (window, x, y);
-    }
-  else if (impl->window)
-    {
-      if (with_move) {
-        private->x = x;
-        private->y = y;
-        impl->window->MoveTo (impl->window, x, y);
-      }
-      impl->drawable.width = width;
-      impl->drawable.height = height;
-
-      impl->window->Resize (impl->window, width, height);
-    }
-  else
-    {
-      GdkRectangle old = { private->x, private->y,
-                           impl->drawable.width, impl->drawable.height };
-      GdkRectangle new = { x, y, width, height };
-
-      if (! with_move)
-        {
-          new.x = private->x;
-          new.y = private->y;
-        }
-
-      _gdk_directfb_move_resize_child (window,
-                                       new.x, new.y, new.width, new.height);
-      _gdk_directfb_calc_abs (window);
-
-      if (GDK_WINDOW_IS_MAPPED (private))
-        {
-          GdkWindow *mousewin;
-
-          gdk_rectangle_union (&new, &old, &new);
-          gdk_window_invalidate_rect (GDK_WINDOW (private->parent), &new,TRUE);
-
-          /* The window the pointer is in might have changed */
-          mousewin = gdk_window_at_pointer (NULL, NULL);
-          gdk_directfb_window_send_crossing_events (NULL, mousewin,
-                                                    GDK_CROSSING_NORMAL);
-        }
-    }
-}
-
-static gboolean
-gdk_directfb_window_reparent (GdkWindow *window,
-                              GdkWindow *new_parent,
-                              gint       x,
-                              gint       y)
-{
-  GdkWindowObject *window_private;
-  GdkWindowObject *parent_private;
-  GdkWindowObject *old_parent_private;
-  GdkWindowImplDirectFB *impl;
-  GdkWindowImplDirectFB *parent_impl;
-  GdkVisual             *visual;
-
-  g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return FALSE;
-
-  if (!new_parent)
-    new_parent = _gdk_parent_root;
-
-  window_private = (GdkWindowObject *) window;
-  old_parent_private = (GdkWindowObject *) window_private->parent;
-  parent_private = (GdkWindowObject *) new_parent;
-  parent_impl = GDK_WINDOW_IMPL_DIRECTFB (parent_private->impl);
-  visual = gdk_drawable_get_visual (window);
-
-  /* already parented */
-  if( window_private->parent == (GdkWindowObject *)new_parent )
-          return FALSE;
-
-  window_private->parent = (GdkWindowObject *) new_parent;
-
-  if (old_parent_private)
-    {
-      old_parent_private->children =
-        g_list_remove (old_parent_private->children, window);
-    }
-
-    parent_private->children = g_list_prepend (parent_private->children, window);
-
-    impl = GDK_WINDOW_IMPL_DIRECTFB (window_private->impl);
-
-    if( impl->drawable.surface ) {
-        impl->drawable.surface->Release (impl->drawable.surface);
-        impl->drawable.surface = NULL;
-    }
-
-    if( impl->window != NULL ) {
-        gdk_directfb_window_id_table_remove (impl->dfb_id);
-       impl->window->SetOpacity (impl->window,0);
-               impl->window->Close(impl->window);
-       impl->window->Release(impl->window);
-        impl->window = NULL;
-    }
-
-    //create window were a child of the root now
-    if( window_private->parent == (GdkWindowObject *)_gdk_parent_root)  {
-        DFBWindowDescription  desc;
-        DFBWindowOptions  window_options = DWOP_NONE;
-        desc.flags = DWDESC_CAPS;
-        if( window_private->input_only ) {
-            desc.caps = DWCAPS_INPUTONLY;
-        } else {
-            desc.flags |= DWDESC_PIXELFORMAT;
-            desc.pixelformat = ((GdkVisualDirectFB *) visual)->format;
-            if (DFB_PIXELFORMAT_HAS_ALPHA (desc.pixelformat)) {
-                desc.flags |= DWDESC_CAPS;
-                desc.caps = DWCAPS_ALPHACHANNEL;
-            }
-       }
-       if( window_private->window_type ==  GDK_WINDOW_CHILD )
-           window_private->window_type = GDK_WINDOW_TOPLEVEL;
-        desc.flags |= ( DWDESC_WIDTH | DWDESC_HEIGHT |
-                      DWDESC_POSX  | DWDESC_POSY );
-        desc.posx   = x;
-        desc.posy   = y;
-        desc.width  = impl->drawable.width;
-        desc.height = impl->drawable.height;
-        if (!create_directfb_window (impl, &desc, window_options))
-        {
-                 g_assert(0);
-          _gdk_window_destroy (window, FALSE);
-          return FALSE;
-        }
-        /* we hold a reference count on ourselves */
-        g_object_ref (window);
-        impl->window->GetID (impl->window, &impl->dfb_id);
-        gdk_directfb_window_id_table_insert (impl->dfb_id, window);
-        gdk_directfb_event_windows_add (window);
-   } else {
-          DFBRectangle rect = { x, y, impl->drawable.width,
-                                     impl->drawable.height};
-          impl->window = NULL;
-          parent_impl->drawable.surface->GetSubSurface (
-                          parent_impl->drawable.surface,
-                          &rect,
-                          &impl->drawable.surface);
-   }
-
-   return TRUE;
-}
-
-static void
-gdk_window_directfb_raise (GdkWindow *window)
-{
-  GdkWindowImplDirectFB *impl;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, window );
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  if (impl->window)
-    {
-      DFBResult ret;
-
-      ret = impl->window->RaiseToTop (impl->window);
-      if (ret)
-        DirectFBError ("gdkwindow-directfb.c: RaiseToTop", ret);
-      else
-        gdk_directfb_window_raise (window);
-    }
-  else
-    {
-      if (gdk_directfb_window_raise (window))
-        gdk_window_invalidate_rect (window, NULL, TRUE);
-    }
-}
-
-static void
-gdk_window_directfb_lower (GdkWindow *window)
-{
-  GdkWindowImplDirectFB *impl;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, window );
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  if (impl->window)
-    {
-      DFBResult ret;
-
-      ret = impl->window->LowerToBottom (impl->window);
-      if (ret)
-        DirectFBError ("gdkwindow-directfb.c: LowerToBottom", ret);
-      else
-        gdk_directfb_window_lower (window);
-    }
-  else
-    {
-      gdk_directfb_window_lower (window);
-      gdk_window_invalidate_rect (window, NULL, TRUE);
-    }
-}
-
-void
-gdk_window_set_geometry_hints (GdkWindow         *window,
-                               const GdkGeometry *geometry,
-                               GdkWindowHints     geom_mask)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-void
-gdk_window_set_title (GdkWindow   *window,
-                      const gchar *title)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p, '%s' )\n", G_STRFUNC, window, title );
-  /* N/A */
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, window );
-}
-
-void
-gdk_window_set_role (GdkWindow   *window,
-                     const gchar *role)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-/**
- * gdk_window_set_startup_id:
- * @window: a toplevel #GdkWindow
- * @startup_id: a string with startup-notification identifier
- *
- * When using GTK+, typically you should use gtk_window_set_startup_id()
- * instead of this low-level function.
- *
- * Since: 2.12
- *
- **/
-void
-gdk_window_set_startup_id (GdkWindow   *window,
-                           const gchar *startup_id)
-{
-}
-
-void
-gdk_window_set_transient_for (GdkWindow *window,
-                              GdkWindow *parent)
-{
-  GdkWindowObject *private;
-  GdkWindowObject *root;
-  gint i;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (GDK_IS_WINDOW (parent));
-
-  private = GDK_WINDOW_OBJECT (window);
-  root    = GDK_WINDOW_OBJECT (_gdk_parent_root);
-
-  g_return_if_fail (GDK_WINDOW (private->parent) == _gdk_parent_root);
-  g_return_if_fail (GDK_WINDOW (GDK_WINDOW_OBJECT (parent)->parent) == _gdk_parent_root);
-
-  root->children = g_list_remove (root->children, window);
-
-  i = g_list_index (root->children, parent);
-  if (i < 0)
-    root->children = g_list_prepend (root->children, window);
-  else
-    root->children = g_list_insert (root->children, window, i);
-}
-
-static void
-gdk_directfb_window_set_background (GdkWindow *window,
-                                    const GdkColor  *color)
-{
-  GdkWindowObject *private;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  g_return_if_fail (color != NULL);
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p, %d,%d,%d )\n", G_STRFUNC, window, color->red, color->green, color->blue );
-
-  private = GDK_WINDOW_OBJECT (window);
-  private->bg_color = *color;
-
-  if (private->bg_pixmap &&
-      private->bg_pixmap != GDK_PARENT_RELATIVE_BG &&
-      private->bg_pixmap != GDK_NO_BG)
-    g_object_unref (private->bg_pixmap);
-
-  private->bg_pixmap = NULL;
-}
-
-static void
-gdk_directfb_window_set_back_pixmap (GdkWindow *window,
-                                     GdkPixmap *pixmap)
-{
-  GdkWindowObject *private;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p, %p )\n", G_STRFUNC,
-              window, pixmap);
-
-  private = GDK_WINDOW_OBJECT (window);
-
-  if (private->bg_pixmap &&
-      private->bg_pixmap != GDK_PARENT_RELATIVE_BG &&
-      private->bg_pixmap != GDK_NO_BG)
-    {
-      g_object_unref (private->bg_pixmap);
-    }
-
-  if (pixmap == GDK_PARENT_RELATIVE_BG)
-    {
-      private->bg_pixmap = GDK_PARENT_RELATIVE_BG;
-    }
-  else
-    {
-      if (pixmap)
-        {
-          g_object_ref (pixmap);
-          private->bg_pixmap = pixmap;
-        }
-      else
-        {
-          private->bg_pixmap = GDK_NO_BG;
-        }
-    }
-}
-
-static void
-gdk_directfb_window_set_cursor (GdkWindow *window,
-                                GdkCursor *cursor)
-{
-  GdkWindowImplDirectFB *impl;
-  GdkCursor             *old_cursor;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-  old_cursor = impl->cursor;
-
-  impl->cursor = (cursor ?
-                  gdk_cursor_ref (cursor) : gdk_cursor_new (GDK_LEFT_PTR));
-
-  if (gdk_window_at_pointer (NULL, NULL) == window)
-    {
-      /* This is a bit evil but we want to keep all cursor changes in
-         one place, so let gdk_directfb_window_send_crossing_events
-         do the work for us. */
-
-      gdk_directfb_window_send_crossing_events (window, window,
-                                                GDK_CROSSING_NORMAL);
-    }
-  else if (impl->window)
-    {
-      GdkCursorDirectFB *dfb_cursor = (GdkCursorDirectFB *) impl->cursor;
-
-      /* this branch takes care of setting the cursor for unmapped windows */
-
-      impl->window->SetCursorShape (impl->window,
-                                    dfb_cursor->shape,
-                                    dfb_cursor->hot_x, dfb_cursor->hot_y);
-    }
-
-  if (old_cursor)
-    gdk_cursor_unref (old_cursor);
-}
-
-static void
-gdk_directfb_window_get_geometry (GdkWindow *window,
-                                  gint      *x,
-                                  gint      *y,
-                                  gint      *width,
-                                  gint      *height,
-                                  gint      *depth)
-{
-  GdkWindowObject         *private;
-  GdkDrawableImplDirectFB *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  private = GDK_WINDOW_OBJECT (window);
-  impl    = GDK_DRAWABLE_IMPL_DIRECTFB (private->impl);
-
-  if (!GDK_WINDOW_DESTROYED (window))
-    {
-      if (x)
-       *x = private->x;
-
-      if (y)
-       *y = private->y;
-
-      if (width)
-       *width = impl->width;
-
-      if (height)
-       *height = impl->height;
-
-      if (depth)
-       *depth = DFB_BITS_PER_PIXEL(impl->format);
-    }
-}
-
-void
-_gdk_directfb_calc_abs (GdkWindow *window)
-{
-  GdkWindowObject         *private;
-  GdkDrawableImplDirectFB *impl;
-  GList                   *list;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (private->impl);
-
-  impl->abs_x = private->x;
-  impl->abs_y = private->y;
-
-  if (private->parent)
-    {
-      GdkDrawableImplDirectFB *parent_impl =
-        GDK_DRAWABLE_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (private->parent)->impl);
-
-      impl->abs_x += parent_impl->abs_x;
-      impl->abs_y += parent_impl->abs_y;
-    }
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p ) -> %4d,%4d\n", G_STRFUNC, window, impl->abs_x, impl->abs_y );
-
-  for (list = private->children; list; list = list->next)
-    {
-      _gdk_directfb_calc_abs (list->data);
-    }
-}
-
-static gboolean
-gdk_directfb_window_get_deskrelative_origin (GdkWindow *window,
-                                             gint      *x,
-                                             gint      *y)
-{
-  return gdk_window_get_origin (window, x, y);
-}
-
-void
-gdk_window_get_root_origin (GdkWindow *window,
-                            gint      *x,
-                            gint      *y)
-{
-  GdkWindowObject *rover;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  rover = (GdkWindowObject*) window;
-  if (x)
-    *x = 0;
-  if (y)
-    *y = 0;
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  while (rover->parent && ((GdkWindowObject*) rover->parent)->parent)
-    rover = (GdkWindowObject *) rover->parent;
-  if (rover->destroyed)
-    return;
-
-  if (x)
-    *x = rover->x;
-  if (y)
-    *y = rover->y;
-}
-
-GdkWindow *
-gdk_directfb_window_get_pointer_helper (GdkWindow       *window,
-                                        gint            *x,
-                                        gint            *y,
-                                        GdkModifierType *mask)
-{
-  GdkWindow               *retval = NULL;
-  gint                     rx, ry, wx, wy;
-  GdkDrawableImplDirectFB *impl;
-
-  g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), NULL);
-
-  if (!window)
-    window = _gdk_parent_root;
-
-  gdk_directfb_mouse_get_info (&rx, &ry, mask);
-
-  wx = rx;
-  wy = ry;
-  retval = gdk_directfb_child_at (_gdk_parent_root, &wx, &wy);
-
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  if (x)
-    *x = rx - impl->abs_x;
-  if (y)
-    *y = ry - impl->abs_y;
-
-  return retval;
-}
-
-static gboolean
-gdk_directfb_window_get_pointer (GdkWindow       *window,
-                                 gint            *x,
-                                 gint            *y,
-                                 GdkModifierType *mask)
-{
-  return gdk_directfb_window_get_pointer_helper (window, x, y, mask) != NULL;
-}
-
-GdkWindow *
-_gdk_windowing_window_at_pointer (GdkDisplay *display,
-                                  gint       *win_x,
-                                 gint       *win_y,
-                                  GdkModifierType *mask,
-                                  gboolean get_toplevel)
-{
-  GdkWindow *retval;
-  gint       wx, wy;
-
-  gdk_directfb_mouse_get_info (&wx, &wy, NULL);
-
-  retval = gdk_directfb_child_at (_gdk_parent_root, &wx, &wy);
-
-  if (win_x)
-    *win_x = wx;
-
-  if (win_y)
-    *win_y = wy;
-
-  if (get_toplevel)
-    {
-      GdkWindowObject *w = (GdkWindowObject *)retval;
-      /* Requested toplevel, find it. */
-      /* TODO: This can be implemented more efficient by never
-        recursing into children in the first place */
-      if (w)
-       {
-         /* Convert to toplevel */
-         while (w->parent != NULL &&
-                w->parent->window_type != GDK_WINDOW_ROOT)
-           {
-             *win_x += w->x;
-             *win_y += w->y;
-             w = w->parent;
-           }
-         retval = (GdkWindow *)w;
-       }
-    }
-
-  return retval;
-}
-
-void
-_gdk_windowing_get_pointer (GdkDisplay       *display,
-                            GdkScreen       **screen,
-                            gint             *x,
-                            gint             *y,
-                            GdkModifierType  *mask)
-{
-  (void)screen;
-  if (screen) {
-    *screen = gdk_display_get_default_screen  (display);
-  }
-
-  gdk_directfb_window_get_pointer (_gdk_windowing_window_at_pointer (display,
-                                                                     NULL,
-                                                                     NULL,
-                                                                     NULL,
-                                                                     FALSE),
-                                   x, y, mask);
-}
-
-static GdkEventMask
-gdk_directfb_window_get_events (GdkWindow *window)
-{
-  g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return 0;
-  else
-    return GDK_WINDOW_OBJECT (window)->event_mask;
-}
-
-static void
-gdk_directfb_window_set_events (GdkWindow    *window,
-                                GdkEventMask  event_mask)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (event_mask & GDK_BUTTON_MOTION_MASK)
-    event_mask |= (GDK_BUTTON1_MOTION_MASK |
-                   GDK_BUTTON2_MOTION_MASK |
-                   GDK_BUTTON3_MOTION_MASK);
-
-  GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
-}
-
-static void
-gdk_directfb_window_shape_combine_region (GdkWindow       *window,
-                                          const cairo_region_t *shape_region,
-                                          gint             offset_x,
-                                          gint             offset_y)
-{
-}
-
-void
-gdk_directfb_window_input_shape_combine_region (GdkWindow       *window,
-                                                const cairo_region_t *shape_region,
-                                                gint             offset_x,
-                                                gint             offset_y)
-{
-}
-
-static void
-gdk_directfb_window_queue_translation (GdkWindow *window,
-                                      GdkGC     *gc,
-                                       cairo_region_t *region,
-                                       gint       dx,
-                                       gint       dy)
-{
-}
-
-void
-gdk_window_set_override_redirect (GdkWindow *window,
-                                  gboolean   override_redirect)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-void
-gdk_window_set_icon_list (GdkWindow *window,
-                          GList     *pixbufs)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-void
-gdk_window_set_icon (GdkWindow *window,
-                     GdkWindow *icon_window,
-                     GdkPixmap *pixmap,
-                     GdkBitmap *mask)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-void
-gdk_window_set_icon_name (GdkWindow   *window,
-                          const gchar *name)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-void
-gdk_window_iconify (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  gdk_window_hide (window);
-}
-
-void
-gdk_window_deiconify (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  gdk_window_show (window);
-}
-
-void
-gdk_window_stick (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-void
-gdk_window_unstick (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-void
-gdk_directfb_window_set_opacity (GdkWindow *window,
-                                 guchar     opacity)
-{
-  GdkWindowImplDirectFB *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  impl->opacity = opacity;
-
-  if (impl->window && GDK_WINDOW_IS_MAPPED (window))
-    {
-      if (gdk_directfb_apply_focus_opacity &&
-         window == gdk_directfb_focused_window)
-       impl->window->SetOpacity (impl->window,
-                                 (impl->opacity >> 1) + (impl->opacity >> 2));
-      else
-       impl->window->SetOpacity (impl->window, impl->opacity);
-    }
-}
-
-void
-gdk_window_focus (GdkWindow *window,
-                  guint32    timestamp)
-{
-  GdkWindow *toplevel;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  toplevel = gdk_directfb_window_find_toplevel (window);
-  if (toplevel != _gdk_parent_root)
-    {
-      GdkWindowImplDirectFB *impl;
-
-      impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (toplevel)->impl);
-
-      impl->window->RequestFocus (impl->window);
-    }
-}
-
-void
-gdk_window_maximize (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-void
-gdk_window_unmaximize (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-void
-gdk_window_set_type_hint (GdkWindow        *window,
-                          GdkWindowTypeHint hint)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  GDK_NOTE (MISC, g_print ("gdk_window_set_type_hint: 0x%x: %d\n",
-               GDK_WINDOW_DFB_ID (window), hint));
-
-  ((GdkWindowImplDirectFB *)((GdkWindowObject *)window)->impl)->type_hint = hint;
-
-
-  /* N/A */
-}
-
-GdkWindowTypeHint
-gdk_window_get_type_hint (GdkWindow *window)
-{
-  g_return_val_if_fail (GDK_IS_WINDOW (window), GDK_WINDOW_TYPE_HINT_NORMAL);
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return GDK_WINDOW_TYPE_HINT_NORMAL;
-
-  return GDK_WINDOW_IMPL_DIRECTFB (((GdkWindowObject *) window)->impl)->type_hint;
-}
-
-void
-gdk_window_set_modal_hint (GdkWindow *window,
-                           gboolean   modal)
-{
-  GdkWindowImplDirectFB *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (GDK_WINDOW_OBJECT (window)->impl);
-
-  if (impl->window)
-    {
-      impl->window->SetStackingClass (impl->window,
-                                      modal ? DWSC_UPPER : DWSC_MIDDLE);
-    }
-}
-
-void
-gdk_window_set_skip_taskbar_hint (GdkWindow *window,
-                                 gboolean   skips_taskbar)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-}
-
-void
-gdk_window_set_skip_pager_hint (GdkWindow *window,
-                               gboolean   skips_pager)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-}
-
-
-void
-gdk_window_set_group (GdkWindow *window,
-                      GdkWindow *leader)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (GDK_IS_WINDOW (leader));
- g_warning(" DirectFb set_group groups not supported \n");
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-}
-
-GdkWindow * gdk_window_get_group (GdkWindow *window)
-{
- g_warning(" DirectFb get_group groups not supported \n");
- return window;
-}
-
-void
-gdk_fb_window_set_child_handler (GdkWindow             *window,
-                                 GdkWindowChildChanged  changed,
-                                 GdkWindowChildGetPos   get_pos,
-                                 gpointer               user_data)
-{
-  GdkWindowChildHandlerData *data;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  data = g_new (GdkWindowChildHandlerData, 1);
-  data->changed   = changed;
-  data->get_pos   = get_pos;
-  data->user_data = user_data;
-
-  g_object_set_data_full (G_OBJECT (window), "gdk-window-child-handler",
-                          data, (GDestroyNotify) g_free);
-}
-
-void
-gdk_window_set_decorations (GdkWindow       *window,
-                            GdkWMDecoration  decorations)
-{
-  GdkWMDecoration *dec;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  dec = g_new (GdkWMDecoration, 1);
-  *dec = decorations;
-
-  g_object_set_data_full (G_OBJECT (window), "gdk-window-decorations",
-                          dec, (GDestroyNotify) g_free);
-}
-
-gboolean
-gdk_window_get_decorations (GdkWindow       *window,
-                           GdkWMDecoration *decorations)
-{
-  GdkWMDecoration *dec;
-
-  g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
-
-  dec = g_object_get_data (G_OBJECT (window), "gdk-window-decorations");
-  if (dec)
-    {
-      *decorations = *dec;
-      return TRUE;
-    }
-  return FALSE;
-}
-
-void
-gdk_window_set_functions (GdkWindow     *window,
-                          GdkWMFunction  functions)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  /* N/A */
-  g_message("unimplemented %s", G_STRFUNC);
-}
-
-static gboolean
-gdk_directfb_window_set_static_gravities (GdkWindow *window,
-                                          gboolean   use_static)
-{
-  g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return FALSE;
-
-  /* N/A */
-  g_message("unimplemented %s", G_STRFUNC);
-
-  return FALSE;
-}
-
-void
-gdk_window_begin_resize_drag (GdkWindow     *window,
-                              GdkWindowEdge  edge,
-                              gint           button,
-                              gint           root_x,
-                              gint           root_y,
-                              guint32        timestamp)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  g_message("unimplemented %s", G_STRFUNC);
-}
-
-void
-gdk_window_begin_move_drag (GdkWindow *window,
-                            gint       button,
-                            gint       root_x,
-                            gint       root_y,
-                            guint32    timestamp)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  g_message("unimplemented %s", G_STRFUNC);
-}
-
-/**
- * gdk_window_get_frame_extents:
- * @window: a #GdkWindow
- * @rect: rectangle to fill with bounding box of the window frame
- *
- * Obtains the bounding box of the window, including window manager
- * titlebar/borders if any. The frame position is given in root window
- * coordinates. To get the position of the window itself (rather than
- * the frame) in root window coordinates, use gdk_window_get_origin().
- *
- **/
-void
-gdk_window_get_frame_extents (GdkWindow    *window,
-                              GdkRectangle *rect)
-{
-  GdkWindowObject         *private;
-  GdkDrawableImplDirectFB *impl;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (rect != NULL);
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  private = GDK_WINDOW_OBJECT (window);
-
-  while (private->parent && ((GdkWindowObject*) private->parent)->parent)
-    private = (GdkWindowObject*) private->parent;
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (private->impl);
-
-  rect->x      = impl->abs_x;
-  rect->y      = impl->abs_y;
-  rect->width  = impl->width;
-  rect->height = impl->height;
-}
-
-/*
- * Given a directfb window and a subsurface of that window
- * create a gdkwindow child wrapper
- */
-GdkWindow *gdk_directfb_create_child_window(GdkWindow *parent,
-                                            IDirectFBSurface *subsurface)
-{
-  GdkWindow             *window;
-  GdkWindowObject       *private;
-  GdkWindowObject       *parent_private;
-  GdkWindowImplDirectFB *impl;
-  GdkWindowImplDirectFB *parent_impl;
-  gint x,y,w,h;
-
-  g_return_val_if_fail (parent != NULL, NULL);
-
-  window = g_object_new (GDK_TYPE_WINDOW, NULL);
-  private = GDK_WINDOW_OBJECT (window);
-  private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
-  parent_private = GDK_WINDOW_OBJECT (parent);
-  parent_impl = GDK_WINDOW_IMPL_DIRECTFB (parent_private->impl);
-  private->parent = parent_private;
-
-  subsurface->GetPosition(subsurface,&x,&y);
-  subsurface->GetSize(subsurface,&w,&h);
-
-  impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-  impl->drawable.wrapper = GDK_DRAWABLE (window);
-
-  private->x = x;
-  private->y = y;
-
-  _gdk_directfb_calc_abs (window);
-
-  impl->drawable.width  = w;
-  impl->drawable.height = h;
-  private->window_type = GDK_WINDOW_CHILD;
-  impl->drawable.surface = subsurface;
-  impl->drawable.format = parent_impl->drawable.format;
-  private->depth = parent_private->depth;
-  gdk_drawable_set_colormap (GDK_DRAWABLE (window),
-        gdk_drawable_get_colormap (parent));
-  gdk_window_set_cursor (window, NULL);
-  parent_private->children = g_list_prepend (parent_private->children,window);
-  /*we hold a reference count on ourselves */
-  g_object_ref (window);
-
-  return window;
-
-}
-
-/*
- * The wrapping is not perfect since directfb does not give full access
- * to the current state of a window event mask etc need to fix dfb
- */
-GdkWindow *
-gdk_window_foreign_new_for_display (GdkDisplay* display,GdkNativeWindow anid)
-{
-    GdkWindow *window = NULL;
-    GdkWindow              *parent =NULL;
-    GdkWindowObject       *private =NULL;
-    GdkWindowObject       *parent_private =NULL;
-    GdkWindowImplDirectFB *parent_impl =NULL;
-    GdkWindowImplDirectFB *impl =NULL;
-    DFBWindowOptions options;
-    DFBResult        ret;
-    GdkDisplayDFB * gdkdisplay =  _gdk_display;
-    IDirectFBWindow *dfbwindow;
-
-    window = gdk_window_lookup (anid);
-
-    if (window) {
-        g_object_ref (window);
-        return window;
-    }
-    if( display != NULL )
-            gdkdisplay = GDK_DISPLAY_DFB(display);
-
-    ret = gdkdisplay->layer->GetWindow (gdkdisplay->layer,
-                    (DFBWindowID)anid,&dfbwindow);
-
-    if (ret != DFB_OK) {
-        DirectFBError ("gdk_window_new: Layer->GetWindow failed", ret);
-        return NULL;
-    }
-
-    parent = _gdk_parent_root;
-
-    if(parent) {
-        parent_private = GDK_WINDOW_OBJECT (parent);
-        parent_impl = GDK_WINDOW_IMPL_DIRECTFB (parent_private->impl);
-    }
-
-    window = g_object_new (GDK_TYPE_WINDOW, NULL);
-    /* we hold a reference count on ourselves */
-    g_object_ref (window);
-    private = GDK_WINDOW_OBJECT (window);
-    private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
-    private->parent = parent_private;
-    private->window_type = GDK_WINDOW_TOPLEVEL;
-    private->viewable = TRUE;
-    impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-
-    impl->drawable.wrapper = GDK_DRAWABLE (window);
-    impl->window = dfbwindow;
-    dfbwindow->GetOptions(dfbwindow,&options);
-    dfbwindow->GetPosition(dfbwindow,&private->x,&private->y);
-    dfbwindow->GetSize(dfbwindow,&impl->drawable.width,&impl->drawable.height);
-
-
-    private->input_only = FALSE;
-
-    if( dfbwindow->GetSurface (dfbwindow, &impl->drawable.surface) == DFB_UNSUPPORTED ){
-        private->input_only = TRUE;
-        impl->drawable.surface = NULL;
-    }
-    /*
-     * Position ourselevs
-     */
-    _gdk_directfb_calc_abs (window);
-
-    /* We default to all events least surprise to the user
-     * minus the poll for motion events
-     */
-    gdk_window_set_events (window, (GDK_ALL_EVENTS_MASK ^ GDK_POINTER_MOTION_HINT_MASK));
-
-    if (impl->drawable.surface)
-    {
-      impl->drawable.surface->GetPixelFormat (impl->drawable.surface,
-                                             &impl->drawable.format);
-
-         private->depth = DFB_BITS_PER_PIXEL(impl->drawable.format);
-      if( parent )
-        gdk_drawable_set_colormap (GDK_DRAWABLE (window), gdk_drawable_get_colormap (parent));
-      else
-        gdk_drawable_set_colormap (GDK_DRAWABLE (window), gdk_colormap_get_system());
-    }
-
-    //can  be null for the soft cursor window itself when
-    //running a gtk directfb wm
-    if( gdk_display_get_default() != NULL ) {
-        gdk_window_set_cursor (window,NULL);
-    }
-
-    if (parent_private)
-        parent_private->children = g_list_prepend (parent_private->children,
-                                               window);
-    impl->dfb_id = (DFBWindowID)anid;
-    gdk_directfb_window_id_table_insert (impl->dfb_id, window);
-    gdk_directfb_event_windows_add (window);
-
-    return window;
-}
-
-GdkWindow *
-gdk_window_lookup_for_display (GdkDisplay *display,GdkNativeWindow anid)
-{
-  return gdk_directfb_window_id_table_lookup ((DFBWindowID) anid);
-}
-
-GdkWindow *
-gdk_window_lookup (GdkNativeWindow anid)
-{
-  return gdk_directfb_window_id_table_lookup ((DFBWindowID) anid);
-}
-
-IDirectFBWindow *gdk_directfb_window_lookup(GdkWindow *window )
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-  g_return_val_if_fail (GDK_IS_WINDOW (window),NULL);
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-  return impl->window;
-}
-
-IDirectFBSurface *gdk_directfb_surface_lookup(GdkWindow *window)
-{
-  GdkWindowObject       *private;
-  GdkWindowImplDirectFB *impl;
-  g_return_val_if_fail (GDK_IS_WINDOW (window),NULL);
-  private = GDK_WINDOW_OBJECT (window);
-  impl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
-  return impl->drawable.surface;
-}
-
-void
-gdk_window_fullscreen (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_warning ("gdk_window_fullscreen() not implemented.\n");
-}
-
-void
-gdk_window_unfullscreen (GdkWindow *window)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  /* g_warning ("gdk_window_unfullscreen() not implemented.\n");*/
-}
-
-void
-gdk_window_set_keep_above (GdkWindow *window, gboolean setting)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  static gboolean first_call = TRUE;
-  if (first_call) {
-  g_warning ("gdk_window_set_keep_above() not implemented.\n");
-       first_call=FALSE;
-  }
-
-}
-
-void
-gdk_window_set_keep_below (GdkWindow *window, gboolean setting)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  static gboolean first_call = TRUE;
-  if (first_call) {
-  g_warning ("gdk_window_set_keep_below() not implemented.\n");
-  first_call=FALSE;
-  }
-
-}
-
-void
-gdk_window_enable_synchronized_configure (GdkWindow *window)
-{
-}
-
-void
-gdk_window_configure_finished (GdkWindow *window)
-{
-}
-
-void
-gdk_display_warp_pointer (GdkDisplay *display,
-                          GdkScreen  *screen,
-                          gint        x,
-                          gint        y)
-{
-  g_warning ("gdk_display_warp_pointer() not implemented.\n");
-}
-
-void
-gdk_window_set_urgency_hint (GdkWindow *window,
-                             gboolean   urgent)
-{
-  g_return_if_fail (GDK_IS_WINDOW (window));
-  g_return_if_fail (GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD);
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  g_warning ("gdk_window_set_urgency_hint() not implemented.\n");
-
-}
-
-static void
-gdk_window_impl_directfb_begin_paint_region (GdkPaintable    *paintable,
-                                             GdkWindow       *window,
-                                             const cairo_region_t *region)
-{
-  GdkDrawableImplDirectFB *impl;
-  GdkWindowImplDirectFB   *wimpl;
-  gint                     i;
-
-  g_assert (region != NULL );
-  wimpl = GDK_WINDOW_IMPL_DIRECTFB (paintable);
-  impl = (GdkDrawableImplDirectFB *)wimpl;
-
-  if (!region)
-    return;
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p ) <- %4d,%4d-%4d,%4d (%ld boxes)\n", G_STRFUNC,
-              paintable, GDKDFB_RECTANGLE_VALS_FROM_BOX(&region->extents), region->numRects );
-
-  /* When it's buffered... */
-  if (impl->buffered)
-    {
-      /* ...we're already painting on it! */
-      g_assert( impl->paint_depth > 0 );
-
-      D_DEBUG_AT( GDKDFB_Window, "  -> painted  %4d,%4d-%4dx%4d (%ld boxes)\n",
-                  DFB_RECTANGLE_VALS_FROM_REGION( &impl->paint_region.extents ), impl->paint_region.numRects );
-
-      /* Add the new region to the paint region... */
-      cairo_region_union (&impl->paint_region, region);
-    }
-  else
-    {
-      /* ...otherwise it's the first time! */
-      g_assert( impl->paint_depth == 0 );
-
-      /* Generate the clip region for painting around child windows. */
-      gdk_directfb_clip_region( GDK_DRAWABLE(paintable), NULL, NULL, &impl->clip_region );
-
-      /* Initialize the paint region with the new one... */
-      temp_region_init_copy( &impl->paint_region, region );
-
-      impl->buffered = TRUE;
-    }
-
-  D_DEBUG_AT( GDKDFB_Window, "  -> painting %4d,%4d-%4dx%4d (%ld boxes)\n",
-              DFB_RECTANGLE_VALS_FROM_REGION( &impl->paint_region.extents ), impl->paint_region.numRects );
-
-  /* ...but clip the initial/compound result against the clip region. */
-  cairo_region_intersect (&impl->paint_region, &impl->clip_region);
-
-  D_DEBUG_AT( GDKDFB_Window, "  -> clipped  %4d,%4d-%4dx%4d (%ld boxes)\n",
-              DFB_RECTANGLE_VALS_FROM_REGION( &impl->paint_region.extents ), impl->paint_region.numRects );
-
-  impl->paint_depth++;
-
-  D_DEBUG_AT( GDKDFB_Window, "  -> depth is now %d\n", impl->paint_depth );
-
-  for (i = 0; i < region->numRects; i++)
-    {
-      cairo_region_tBox *box = &region->rects[i];
-
-      D_DEBUG_AT( GDKDFB_Window, "  -> [%2d] %4d,%4d-%4dx%4d\n", i, GDKDFB_RECTANGLE_VALS_FROM_BOX( box ) );
-
-      gdk_window_clear_area (GDK_WINDOW(wimpl->gdkWindow),
-                             box->x1,
-                             box->y1,
-                             box->x2 - box->x1,
-                             box->y2 - box->y1);
-    }
-}
-
-static void
-gdk_window_impl_directfb_end_paint (GdkPaintable *paintable)
-{
-  GdkDrawableImplDirectFB *impl;
-
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (paintable);
-
-  D_DEBUG_AT( GDKDFB_Window, "%s( %p )\n", G_STRFUNC, paintable );
-
-  g_return_if_fail (impl->paint_depth > 0);
-
-  g_assert( impl->buffered );
-
-  impl->paint_depth--;
-
-#ifdef GDK_DIRECTFB_NO_EXPERIMENTS
-  if (impl->paint_depth == 0)
-    {
-      impl->buffered = FALSE;
-
-      if (impl->paint_region.numRects)
-        {
-          DFBRegion reg = { impl->paint_region.extents.x1,
-                            impl->paint_region.extents.y1,
-                            impl->paint_region.extents.x2-1,
-                            impl->paint_region.extents.y2-1 };
-
-          D_DEBUG_AT( GDKDFB_Window, "  -> flip %4d,%4d-%4dx%4d (%ld boxes)\n",
-                      DFB_RECTANGLE_VALS_FROM_REGION( &reg ), impl->paint_region.numRects );
-
-          impl->surface->Flip( impl->surface, &reg, 0 );
-
-          temp_region_reset( &impl->paint_region );
-        }
-    }
-#else
-  if (impl->paint_depth == 0)
-    {
-      impl->buffered = FALSE;
-
-      temp_region_deinit( &impl->clip_region );
-
-      if (impl->paint_region.numRects)
-        {
-          GdkWindow *window = GDK_WINDOW( impl->wrapper );
-
-          if (GDK_IS_WINDOW(window))
-            {
-              GdkWindowObject *top = GDK_WINDOW_OBJECT( gdk_window_get_toplevel( window ) );
-
-              if (top)
-                {
-                  DFBRegion              reg;
-                  GdkWindowImplDirectFB *wimpl = GDK_WINDOW_IMPL_DIRECTFB (top->impl);
-
-                  reg.x1 = impl->abs_x - top->x + impl->paint_region.extents.x1;
-                  reg.y1 = impl->abs_y - top->y + impl->paint_region.extents.y1;
-                  reg.x2 = impl->abs_x - top->x + impl->paint_region.extents.x2 - 1;
-                  reg.y2 = impl->abs_y - top->y + impl->paint_region.extents.y2 - 1;
-
-                  D_DEBUG_AT( GDKDFB_Window, "  -> queue flip %4d,%4d-%4dx%4d (%ld boxes)\n",
-                              DFB_RECTANGLE_VALS_FROM_REGION( &reg ), impl->paint_region.numRects );
-
-                  dfb_updates_add( &wimpl->flips, &reg );
-                }
-            }
-
-          temp_region_reset( &impl->paint_region );
-        }
-    }
-#endif
-  else
-    D_DEBUG_AT( GDKDFB_Window, "  -> depth is still %d\n", impl->paint_depth );
-}
-
-cairo_region_t *
-_gdk_windowing_get_shape_for_mask (GdkBitmap *mask)
-{
-  return NULL;
-}
-
-cairo_region_t *
-_gdk_windowing_window_get_shape (GdkWindow *window)
-{
-  return NULL;
-}
-
-gulong
-_gdk_windowing_window_get_next_serial (GdkDisplay *display)
-{
-  return 0;
-}
-
-cairo_region_t *
-_gdk_windowing_window_get_input_shape (GdkWindow *window)
-{
-  return NULL;
-}
-
-void
-_gdk_windowing_before_process_all_updates (void)
-{
-}
-
-void
-_gdk_windowing_after_process_all_updates (void)
-{
-}
-
-void
-_gdk_windowing_window_process_updates_recurse (GdkWindow *window,
-                                               cairo_region_t *region)
-{
-  _gdk_window_process_updates_recurse (window, region);
-}
-
-static void
-gdk_window_impl_directfb_paintable_init (GdkPaintableIface *iface)
-{
-  iface->begin_paint_region = gdk_window_impl_directfb_begin_paint_region;
-  iface->end_paint = gdk_window_impl_directfb_end_paint;
-}
-
-void
-_gdk_windowing_window_beep (GdkWindow *window)
-{
-  gdk_display_beep (gdk_display_get_default());
-}
-
-void
-gdk_window_set_opacity (GdkWindow *window,
-                       gdouble    opacity)
-{
-  GdkDisplay *display;
-  guint8 cardinal;
-
-  g_return_if_fail (GDK_IS_WINDOW (window));
-
-  if (GDK_WINDOW_DESTROYED (window))
-    return;
-
-  display = gdk_drawable_get_display (window);
-
-  if (opacity < 0)
-    opacity = 0;
-  else if (opacity > 1)
-    opacity = 1;
-  cardinal = opacity * 0xff;
-  gdk_directfb_window_set_opacity(window,cardinal);
-}
-
-void
-_gdk_windowing_window_set_composited (GdkWindow *window,
-                                      gboolean   composited)
-{
-}
-
-static gint
-gdk_directfb_window_get_root_coords (GdkWindow *window,
-                                     gint       x,
-                                     gint       y,
-                                     gint      *root_x,
-                                     gint      *root_y)
-{
-  /* TODO */
-  return 1;
-}
-
-static gboolean
-gdk_directfb_window_queue_antiexpose (GdkWindow *window,
-                                      cairo_region_t *area)
-{
-  return FALSE;
-}
-
-static void
-gdk_window_impl_iface_init (GdkWindowImplIface *iface)
-{
-  iface->show = gdk_directfb_window_show;
-  iface->hide = gdk_directfb_window_hide;
-  iface->withdraw = gdk_directfb_window_withdraw;
-  iface->set_events = gdk_directfb_window_set_events;
-  iface->get_events = gdk_directfb_window_get_events;
-  iface->raise = gdk_window_directfb_raise;
-  iface->lower = gdk_window_directfb_lower;
-  iface->move_resize = gdk_directfb_window_move_resize;
-  iface->set_background = gdk_directfb_window_set_background;
-  iface->set_back_pixmap = gdk_directfb_window_set_back_pixmap;
-  iface->reparent = gdk_directfb_window_reparent;
-  iface->set_cursor = gdk_directfb_window_set_cursor;
-  iface->get_geometry = gdk_directfb_window_get_geometry;
-  iface->get_root_coords = gdk_directfb_window_get_root_coords;
-  iface->get_pointer = gdk_directfb_window_get_pointer;
-  iface->get_deskrelative_origin = gdk_directfb_window_get_deskrelative_origin;
-  iface->shape_combine_region = gdk_directfb_window_shape_combine_region;
-  iface->input_shape_combine_region = gdk_directfb_window_input_shape_combine_region;
-  iface->set_static_gravities = gdk_directfb_window_set_static_gravities;
-  iface->queue_antiexpose = gdk_directfb_window_queue_antiexpose;
-  iface->queue_translation = gdk_directfb_window_queue_translation;
-  iface->destroy = gdk_directfb_window_destroy;
-}
diff --git a/gdk/directfb/gdkwindowid.c b/gdk/directfb/gdkwindowid.c
deleted file mode 100644 (file)
index b6ba747..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
- * file for a list of people on the GTK+ Team.
- */
-
-/*
- * GTK+ DirectFB backend
- * Copyright (C) 2001-2002  convergence integrated media GmbH
- * Copyright (C) 2002-2004  convergence GmbH
- * Written by Denis Oliver Kropp <dok@convergence.de> and
- *            Sven Neumann <sven@convergence.de>
- */
-
-#include "config.h"
-
-#include "gdkdirectfb.h"
-#include "gdkprivate-directfb.h"
-
-
-static GHashTable *window_id_ht = NULL;
-
-
-void
-gdk_directfb_window_id_table_insert (DFBWindowID  dfb_id,
-                                     GdkWindow   *window)
-{
-  if (!window_id_ht)
-    window_id_ht = g_hash_table_new (g_direct_hash, g_direct_equal);
-
-  g_hash_table_insert (window_id_ht, GUINT_TO_POINTER (dfb_id), window);
-}
-
-void
-gdk_directfb_window_id_table_remove (DFBWindowID dfb_id)
-{
-  if (window_id_ht)
-    g_hash_table_remove (window_id_ht, GUINT_TO_POINTER (dfb_id));
-}
-
-GdkWindow *
-gdk_directfb_window_id_table_lookup (DFBWindowID dfb_id)
-{
-  GdkWindow *window = NULL;
-
-  if (window_id_ht)
-    window = (GdkWindow *) g_hash_table_lookup (window_id_ht,
-                                                GUINT_TO_POINTER (dfb_id));
-
-  return window;
-}
diff --git a/gdk/directfb/x-cursors.xbm b/gdk/directfb/x-cursors.xbm
deleted file mode 100644 (file)
index 38b269c..0000000
+++ /dev/null
@@ -1,924 +0,0 @@
-#define X_cursor_width 14
-#define X_cursor_height 14
-#define X_cursor_x_hot 6
-#define X_cursor_y_hot 6
-static unsigned char X_cursor_bits[] = {
-0x07, 0xb8, 0x0f, 0x3c, 0x1f, 0x3e, 0x3e, 0x1f, 0xfc, 0x0f, 0xf8, 0x07, 0xf0, 0x03, 0xf0, 0x03, 0xf8, 0x07, 0xfc, 0x0f, 0x3e, 0x1f, 0x1f, 0x3e, 0x0f, 0x3c, 0x07, 0x38};
-#define X_cursor_mask_width 16
-#define X_cursor_mask_height 16
-#define X_cursor_mask_x_hot 7
-#define X_cursor_mask_y_hot 7
-static unsigned char X_cursor_mask_bits[] = {
-0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f, 0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0xf8, 0x0f, 0xf0};
-#define arrow_width 14
-#define arrow_height 14
-#define arrow_x_hot 13
-#define arrow_y_hot 0
-static unsigned char arrow_bits[] = {
-00, 0xb0, 00, 0x3c, 00, 0x1f, 0xc0, 0x1f, 0xf0, 0x0f, 0xfc, 0x0f, 0xc0, 0x07, 0xe0, 0x07, 0x70, 0x03, 0x38, 0x03, 0x1c, 0x01, 0x0e, 0x01, 0x07, 00, 0x02, 00};
-#define arrow_mask_width 16
-#define arrow_mask_height 16
-#define arrow_mask_x_hot 14
-#define arrow_mask_y_hot 1
-static unsigned char arrow_mask_bits[] = {
-00, 0xe0, 00, 0xf8, 00, 0xfe, 0x80, 0x7f, 0xe0, 0x7f, 0xf8, 0x3f, 0xfc, 0x3f, 0xfc, 0x1f, 0xe0, 0x1f, 0xf0, 0x0f, 0xf8, 0x0f, 0x7c, 0x07, 0x3e, 0x07, 0x1f, 0x02, 0x0e, 00, 0x04, 00};
-#define based_arrow_down_width 8
-#define based_arrow_down_height 10
-#define based_arrow_down_x_hot 3
-#define based_arrow_down_y_hot 9
-static unsigned char based_arrow_down_bits[] = {
-0xff, 00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x5a, 0x3c, 0x18};
-#define based_arrow_down_mask_width 10
-#define based_arrow_down_mask_height 12
-#define based_arrow_down_mask_x_hot 4
-#define based_arrow_down_mask_y_hot 10
-static unsigned char based_arrow_down_mask_bits[] = {
-0xff, 0x23, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0x78, 00, 0x78, 00, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfc, 00, 0x78, 00};
-#define based_arrow_up_width 8
-#define based_arrow_up_height 10
-#define based_arrow_up_x_hot 3
-#define based_arrow_up_y_hot 9
-static unsigned char based_arrow_up_bits[] = {
-0x18, 0x3c, 0x5a, 0x18, 0x18, 0x18, 0x18, 0xff, 00, 0xff};
-#define based_arrow_up_mask_width 10
-#define based_arrow_up_mask_height 12
-#define based_arrow_up_mask_x_hot 4
-#define based_arrow_up_mask_y_hot 10
-static unsigned char based_arrow_up_mask_bits[] = {
-0x30, 0x20, 0x78, 00, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x01, 0x78, 00, 0x78, 00, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03};
-#define boat_width 16
-#define boat_height 8
-#define boat_x_hot 14
-#define boat_y_hot 3
-static unsigned char boat_bits[] = {
-0x80, 00, 0xe0, 0x03, 0x11, 0x06, 0xff, 0xff, 00, 0x18, 00, 0x04, 00, 0x02, 0xff, 0x03};
-#define boat_mask_width 16
-#define boat_mask_height 9
-#define boat_mask_x_hot 14
-#define boat_mask_y_hot 4
-static unsigned char boat_mask_bits[] = {
-0xe0, 00, 0xf0, 0x03, 0xf9, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0x07, 0xff, 0x03};
-#define bogosity_width 13
-#define bogosity_height 14
-#define bogosity_x_hot 6
-#define bogosity_y_hot 6
-static unsigned char bogosity_bits[] = {
-0x47, 0x9c, 0x44, 0x04, 0x44, 0x04, 0x44, 0x04, 0xff, 0x1f, 0x45, 0x14, 0x45, 0x14, 0x45, 0x14, 0x45, 0x14, 0xff, 0x1f, 0x44, 0x04, 0x44, 0x04, 0x44, 0x04, 0x47, 0x1c};
-#define bogosity_mask_width 15
-#define bogosity_mask_height 16
-#define bogosity_mask_x_hot 7
-#define bogosity_mask_y_hot 7
-static unsigned char bogosity_mask_bits[] = {
-0xdf, 0x7d, 0xdf, 0x7d, 0xdf, 0x7d, 0xdc, 0x1d, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xdf, 0x7d, 0xdf, 0x7d, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xdc, 0x1d, 0xdf, 0x7d, 0xdf, 0x7d, 0xdf, 0x7d};
-#define bottom_left_corner_width 14
-#define bottom_left_corner_height 14
-#define bottom_left_corner_x_hot 0
-#define bottom_left_corner_y_hot 13
-static unsigned char bottom_left_corner_bits[] = {
-0x03, 0x80, 0x03, 00, 0x23, 0x08, 0x23, 0x04, 0x23, 0x02, 0x23, 0x01, 0xa3, 00, 0x63, 00, 0xe3, 0x0f, 0x03, 00, 0x03, 00, 0x03, 00, 0xff, 0x3f, 0xff, 0x3f};
-#define bottom_left_corner_mask_width 16
-#define bottom_left_corner_mask_height 16
-#define bottom_left_corner_mask_x_hot 1
-#define bottom_left_corner_mask_y_hot 14
-static unsigned char bottom_left_corner_mask_bits[] = {
-0x0f, 00, 0x0f, 00, 0xef, 0x30, 0xef, 0x38, 0xef, 0x1c, 0xef, 0x0e, 0xef, 0x07, 0xef, 0x03, 0xef, 0x3f, 0xef, 0x3f, 0xef, 0x3f, 0x0f, 00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-#define bottom_right_corner_width 14
-#define bottom_right_corner_height 14
-#define bottom_right_corner_x_hot 13
-#define bottom_right_corner_y_hot 13
-static unsigned char bottom_right_corner_bits[] = {
-00, 0xb0, 00, 0x30, 0x04, 0x31, 0x08, 0x31, 0x10, 0x31, 0x20, 0x31, 0x40, 0x31, 0x80, 0x31, 0xfc, 0x31, 00, 0x30, 00, 0x30, 00, 0x30, 0xff, 0x3f, 0xff, 0x3f};
-#define bottom_right_corner_mask_width 16
-#define bottom_right_corner_mask_height 16
-#define bottom_right_corner_mask_x_hot 14
-#define bottom_right_corner_mask_y_hot 14
-static unsigned char bottom_right_corner_mask_bits[] = {
-00, 0xf0, 00, 0xf0, 0x0c, 0xf7, 0x1c, 0xf7, 0x38, 0xf7, 0x70, 0xf7, 0xe0, 0xf7, 0xc0, 0xf7, 0xfc, 0xf7, 0xfc, 0xf7, 0xfc, 0xf7, 00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-#define bottom_side_width 13
-#define bottom_side_height 14
-#define bottom_side_x_hot 6
-#define bottom_side_y_hot 13
-static unsigned char bottom_side_bits[] = {
-0x40, 0x80, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0x44, 0x04, 0x48, 0x02, 0x50, 0x01, 0xe0, 00, 0x40, 00, 00, 00, 0xff, 0x1f, 0xff, 0x1f};
-#define bottom_side_mask_width 15
-#define bottom_side_mask_height 16
-#define bottom_side_mask_x_hot 7
-#define bottom_side_mask_y_hot 14
-static unsigned char bottom_side_mask_bits[] = {
-0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xcc, 0x19, 0xdc, 0x1d, 0xf8, 0x0f, 0xf0, 0x07, 0xe0, 0x03, 0xc0, 0x01, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f};
-#define bottom_tee_width 14
-#define bottom_tee_height 10
-#define bottom_tee_x_hot 7
-#define bottom_tee_y_hot 9
-static unsigned char bottom_tee_bits[] = {
-0xc0, 0x80, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xff, 0x3f, 0xff, 0x3f};
-#define bottom_tee_mask_width 16
-#define bottom_tee_mask_height 12
-#define bottom_tee_mask_x_hot 8
-#define bottom_tee_mask_y_hot 10
-static unsigned char bottom_tee_mask_bits[] = {
-0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-#define box_spiral_width 15
-#define box_spiral_height 16
-#define box_spiral_x_hot 8
-#define box_spiral_y_hot 8
-static unsigned char box_spiral_bits[] = {
-0xff, 0xff, 0x01, 00, 0xfd, 0x7f, 0x05, 0x40, 0xf5, 0x5f, 0x15, 0x50, 0xd5, 0x57, 0x55, 0x54, 0x55, 0x55, 0xd5, 0x55, 0x15, 0x54, 0xf5, 0x57, 0x05, 0x50, 0xfd, 0x5f, 0x01, 0x40, 0xff, 0x7f};
-#define box_spiral_mask_width 16
-#define box_spiral_mask_height 16
-#define box_spiral_mask_x_hot 8
-#define box_spiral_mask_y_hot 8
-static unsigned char box_spiral_mask_bits[] = {
-0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-#define center_ptr_width 10
-#define center_ptr_height 14
-#define center_ptr_x_hot 4
-#define center_ptr_y_hot 0
-static unsigned char center_ptr_bits[] = {
-0x30, 0x90, 0x30, 00, 0x78, 00, 0x78, 00, 0xfc, 00, 0xfc, 00, 0xfe, 0x01, 0xfe, 0x01, 0x33, 0x03, 0x31, 0x02, 0x30, 00, 0x30, 00, 0x30, 00, 0x30, 00};
-#define center_ptr_mask_width 12
-#define center_ptr_mask_height 16
-#define center_ptr_mask_x_hot 5
-#define center_ptr_mask_y_hot 1
-static unsigned char center_ptr_mask_bits[] = {
-0xf0, 0x20, 0xf0, 00, 0xf8, 0x01, 0xf8, 0x01, 0xfc, 0x03, 0xfc, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xf7, 0x0e, 0xf0, 00, 0xf0, 00, 0xf0, 00, 0xf0, 00};
-#define circle_width 14
-#define circle_height 14
-#define circle_x_hot 7
-#define circle_y_hot 7
-static unsigned char circle_bits[] = {
-0xe0, 0x81, 0xf8, 0x07, 0xfc, 0x0f, 0x1e, 0x1e, 0x0e, 0x1c, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x07, 0x38, 0x0e, 0x1c, 0x1e, 0x1e, 0xfc, 0x0f, 0xf8, 0x07, 0xe0, 0x01};
-#define circle_mask_width 16
-#define circle_mask_height 16
-#define circle_mask_x_hot 8
-#define circle_mask_y_hot 8
-static unsigned char circle_mask_bits[] = {
-0xe0, 0x07, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f, 0xfe, 0x7f, 0x3f, 0xfc, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x3f, 0xfc, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xe0, 0x07};
-#define clock_width 14
-#define clock_height 16
-#define clock_x_hot 6
-#define clock_y_hot 3
-static unsigned char clock_bits[] = {
-0xfc, 0x8f, 0xe6, 0x19, 0x13, 0x33, 0xc9, 0x24, 0x79, 0x24, 0x11, 0x22, 0xe3, 0x31, 0xfe, 0x1f, 0xca, 0x14, 0xca, 0x14, 0xca, 0x14, 0xea, 0x15, 0xcb, 0x34, 0x0f, 0x3c, 0xff, 0x3f, 0xff, 0x3f};
-#define clock_mask_width 15
-#define clock_mask_height 16
-#define clock_mask_x_hot 6
-#define clock_mask_y_hot 3
-static unsigned char clock_mask_bits[] = {
-0xfe, 0x1f, 0xf7, 0x39, 0xdb, 0x77, 0xed, 0x6d, 0xfd, 0x6f, 0xf9, 0x66, 0xf3, 0x73, 0xff, 0x3f, 0xeb, 0x35, 0xeb, 0x35, 0xeb, 0x35, 0xfb, 0x37, 0xeb, 0x75, 0xcf, 0x7c, 0xff, 0x7f, 0xff, 0x7f};
-#define coffee_mug_width 15
-#define coffee_mug_height 16
-#define coffee_mug_x_hot 7
-#define coffee_mug_y_hot 9
-static unsigned char coffee_mug_bits[] = {
-0xf8, 0x8f, 0x04, 0x10, 0x06, 0x60, 0x0a, 0x58, 0xf2, 0x47, 0x03, 0x40, 0x03, 0x40, 0x02, 0x40, 0x02, 0x40, 0x9a, 0x58, 0x56, 0x55, 0xd7, 0x55, 0x5b, 0x59, 0x02, 0x40, 0x02, 0x40, 0xfc, 0x3f};
-#define coffee_mug_mask_width 16
-#define coffee_mug_mask_height 16
-#define coffee_mug_mask_x_hot 7
-#define coffee_mug_mask_y_hot 9
-static unsigned char coffee_mug_mask_bits[] = {
-0xf8, 0x0f, 0xfc, 0x1f, 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfc, 0x3f};
-#define cross_width 16
-#define cross_height 15
-#define cross_x_hot 7
-#define cross_y_hot 7
-static unsigned char cross_bits[] = {
-0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x7f, 0xff, 00, 00, 0x7f, 0xff, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01};
-#define cross_mask_width 16
-#define cross_mask_height 16
-#define cross_mask_x_hot 7
-#define cross_mask_y_hot 7
-static unsigned char cross_mask_bits[] = {
-0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03, 0xe0, 0x03};
-#define cross_reverse_width 16
-#define cross_reverse_height 15
-#define cross_reverse_x_hot 7
-#define cross_reverse_y_hot 7
-static unsigned char cross_reverse_bits[] = {
-0x42, 0x21, 0x45, 0x51, 0x4a, 0x29, 0x54, 0x15, 0x68, 0x0b, 0x50, 0x05, 0xbf, 0xfe, 0x40, 0x01, 0xbf, 0xfe, 0x50, 0x05, 0x68, 0x0b, 0x54, 0x15, 0x4a, 0x29, 0x45, 0x51, 0x42, 0x21};
-#define cross_reverse_mask_width 16
-#define cross_reverse_mask_height 15
-#define cross_reverse_mask_x_hot 7
-#define cross_reverse_mask_y_hot 7
-static unsigned char cross_reverse_mask_bits[] = {
-0x66, 0x33, 0x6d, 0xdb, 0x7b, 0x6f, 0x76, 0x37, 0x6c, 0x1b, 0x5f, 0xfd, 0x3f, 0xfe, 0x80, 00, 0x3f, 0xfe, 0x5f, 0xfd, 0x6c, 0x1b, 0x76, 0x37, 0x7b, 0x6f, 0x6d, 0xdb, 0x66, 0x33};
-#define crosshair_width 16
-#define crosshair_height 15
-#define crosshair_x_hot 7
-#define crosshair_y_hot 7
-static unsigned char crosshair_bits[] = {
-0x80, 00, 0x80, 00, 0x80, 00, 0x80, 00, 0x80, 00, 0x80, 00, 0x80, 00, 0x7f, 0xff, 0x80, 00, 0x80, 00, 0x80, 00, 0x80, 00, 0x80, 00, 0x80, 00, 0x80, 00};
-#define crosshair_mask_width 16
-#define crosshair_mask_height 16
-#define crosshair_mask_x_hot 7
-#define crosshair_mask_y_hot 7
-static unsigned char crosshair_mask_bits[] = {
-0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01};
-#define diamond_cross_width 15
-#define diamond_cross_height 15
-#define diamond_cross_x_hot 7
-#define diamond_cross_y_hot 7
-static unsigned char diamond_cross_bits[] = {
-0x40, 0x81, 0x60, 0x03, 0x50, 0x05, 0x48, 0x09, 0x44, 0x11, 0x42, 0x21, 0x7f, 0x7f, 00, 00, 0x7f, 0x7f, 0x42, 0x21, 0x44, 0x11, 0x48, 0x09, 0x50, 0x05, 0x60, 0x03, 0x40, 0x01};
-#define diamond_cross_mask_width 16
-#define diamond_cross_mask_height 16
-#define diamond_cross_mask_x_hot 7
-#define diamond_cross_mask_y_hot 7
-static unsigned char diamond_cross_mask_bits[] = {
-0xe0, 0x03, 0xf0, 0x07, 0xf8, 0x0f, 0xdc, 0x1d, 0xce, 0x39, 0xc7, 0x71, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xc7, 0x71, 0xce, 0x39, 0xdc, 0x1d, 0xf8, 0x0f, 0xf0, 0x07, 0xe0, 0x03, 0xc0, 0x01};
-#define dot_width 10
-#define dot_height 10
-#define dot_x_hot 5
-#define dot_y_hot 5
-static unsigned char dot_bits[] = {
-0x78, 0x90, 0xfe, 0x01, 0xfe, 0x01, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xfe, 0x01, 0xfe, 0x01, 0x78, 00};
-#define dot_mask_width 12
-#define dot_mask_height 12
-#define dot_mask_x_hot 6
-#define dot_mask_y_hot 6
-static unsigned char dot_mask_bits[] = {
-0xf8, 0x21, 0xfe, 0x07, 0xfe, 0x07, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xfe, 0x07, 0xfe, 0x07, 0xf8, 0x01};
-#define dotbox_width 12
-#define dotbox_height 12
-#define dotbox_x_hot 6
-#define dotbox_y_hot 5
-static unsigned char dotbox_bits[] = {
-0xff, 0x9f, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x61, 0x08, 0x61, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0xff, 0x0f};
-#define dotbox_mask_width 14
-#define dotbox_mask_height 14
-#define dotbox_mask_x_hot 7
-#define dotbox_mask_y_hot 6
-static unsigned char dotbox_mask_bits[] = {
-0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0x07, 0x38, 0x07, 0x38, 0xe7, 0x39, 0xe7, 0x39, 0xe7, 0x39, 0xe7, 0x39, 0x07, 0x38, 0x07, 0x38, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f};
-#define double_arrow_width 10
-#define double_arrow_height 14
-#define double_arrow_x_hot 5
-#define double_arrow_y_hot 7
-static unsigned char double_arrow_bits[] = {
-0x30, 0x90, 0x78, 00, 0xfc, 00, 0xb6, 0x01, 0x33, 0x03, 0x30, 00, 0x30, 00, 0x30, 00, 0x30, 00, 0x33, 0x03, 0xb6, 0x01, 0xfc, 00, 0x78, 00, 0x30, 00};
-#define double_arrow_mask_width 12
-#define double_arrow_mask_height 16
-#define double_arrow_mask_x_hot 6
-#define double_arrow_mask_y_hot 8
-static unsigned char double_arrow_mask_bits[] = {
-0xf0, 0x20, 0xf8, 0x01, 0xfc, 0x03, 0xfe, 0x07, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xf0, 00, 0xf0, 00, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xfe, 0x07, 0xfc, 0x03, 0xf8, 0x01, 0xf0, 00};
-#define draft_large_width 15
-#define draft_large_height 15
-#define draft_large_x_hot 14
-#define draft_large_y_hot 0
-static unsigned char draft_large_bits[] = {
-00, 0xc0, 00, 0x30, 00, 0x3c, 00, 0x1f, 0xc0, 0x1f, 0xf0, 0x0f, 0xfc, 0x0f, 0x80, 0x07, 0x40, 0x07, 0x20, 0x03, 0x10, 0x03, 0x08, 0x01, 0x04, 0x01, 0x02, 00, 0x01, 00};
-#define draft_large_mask_width 15
-#define draft_large_mask_height 16
-#define draft_large_mask_x_hot 14
-#define draft_large_mask_y_hot 0
-static unsigned char draft_large_mask_bits[] = {
-00, 0x60, 00, 0x78, 00, 0x7e, 0x80, 0x3f, 0xe0, 0x1f, 0xf8, 0x1f, 0xfe, 0x0f, 0xfe, 0x0f, 0xe0, 0x07, 0xf0, 0x07, 0xb8, 0x03, 0x9c, 0x03, 0x8e, 0x01, 0x87, 0x01, 0x03, 00, 0x01, 00};
-#define draft_small_width 15
-#define draft_small_height 15
-#define draft_small_x_hot 14
-#define draft_small_y_hot 0
-static unsigned char draft_small_bits[] = {
-00, 0x40, 00, 0x30, 00, 0x3c, 00, 0x1f, 0xc0, 0x1f, 00, 0x0e, 00, 0x0d, 0x80, 0x04, 0x40, 0x04, 0x20, 00, 0x10, 00, 0x08, 00, 0x04, 00, 0x02, 00, 0x01, 00};
-#define draft_small_mask_width 15
-#define draft_small_mask_height 15
-#define draft_small_mask_x_hot 14
-#define draft_small_mask_y_hot 0
-static unsigned char draft_small_mask_bits[] = {
-00, 0x60, 00, 0x78, 00, 0x3e, 0x80, 0x3f, 0xe0, 0x1f, 0xe0, 0x1f, 0x80, 0x0f, 0xc0, 0x0f, 0xe0, 0x06, 0x70, 0x02, 0x38, 00, 0x1c, 00, 0x0e, 00, 0x07, 00, 0x03, 00};
-#define draped_box_width 12
-#define draped_box_height 12
-#define draped_box_x_hot 6
-#define draped_box_y_hot 5
-static unsigned char draped_box_bits[] = {
-0xff, 0x1f, 0x91, 0x08, 0x99, 0x09, 0x0d, 0x0b, 0x07, 0x0e, 0x61, 0x08, 0x61, 0x08, 0x07, 0x0e, 0x0d, 0x0b, 0x99, 0x09, 0x91, 0x08, 0xff, 0x0f};
-#define draped_box_mask_width 14
-#define draped_box_mask_height 14
-#define draped_box_mask_x_hot 7
-#define draped_box_mask_y_hot 6
-static unsigned char draped_box_mask_bits[] = {
-0xff, 0x3f, 0xff, 0x3f, 0xf3, 0x33, 0xfb, 0x37, 0x3f, 0x3f, 0xdf, 0x3e, 0xef, 0x3d, 0xef, 0x3d, 0xdf, 0x3e, 0x3f, 0x3f, 0xfb, 0x37, 0xf3, 0x33, 0xff, 0x3f, 0xff, 0x3f};
-#define exchange_width 14
-#define exchange_height 14
-#define exchange_x_hot 6
-#define exchange_y_hot 6
-static unsigned char exchange_bits[] = {
-0xf1, 0x03, 0xfb, 0x07, 0x1f, 0x0c, 0x09, 0x08, 0x19, 00, 0x3f, 00, 00, 00, 00, 00, 00, 0x3f, 00, 0x26, 0x04, 0x24, 0x0c, 0x3e, 0xf8, 0x37, 0xf0, 0x23};
-#define exchange_mask_width 16
-#define exchange_mask_height 16
-#define exchange_mask_x_hot 7
-#define exchange_mask_y_hot 7
-static unsigned char exchange_mask_bits[] = {
-0xe3, 0x07, 0xf7, 0x0f, 0xff, 0x1f, 0xff, 0x3f, 0x3f, 0x38, 0xff, 0x30, 0xff, 00, 0xff, 00, 00, 0xff, 00, 0xff, 0x0c, 0xfe, 0x1c, 0xfc, 0xfc, 0xff, 0xf8, 0xff, 0xf0, 0xef, 0xe0, 0xc7};
-#define fleur_width 14
-#define fleur_height 14
-#define fleur_x_hot 7
-#define fleur_y_hot 7
-static unsigned char fleur_bits[] = {
-0xc0, 00, 0xe0, 0x01, 0xf0, 0x03, 0xc0, 00, 0xc4, 0x08, 0xc6, 0x18, 0xff, 0x3f, 0xff, 0x3f, 0xc6, 0x18, 0xc4, 0x08, 0xc0, 00, 0xf0, 0x03, 0xe0, 0x01, 0xc0, 00};
-#define fleur_mask_width 16
-#define fleur_mask_height 16
-#define fleur_mask_x_hot 8
-#define fleur_mask_y_hot 8
-static unsigned char fleur_mask_bits[] = {
-0xc0, 0x03, 0xc0, 0x07, 0xe0, 0x07, 0xf0, 0x0f, 0xe8, 0x17, 0xdc, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0x3b, 0xe8, 0x17, 0xf0, 0x0f, 0xe0, 0x07, 0xc0, 0x03, 0xc0, 0x03};
-#define gobbler_width 16
-#define gobbler_height 15
-#define gobbler_x_hot 14
-#define gobbler_y_hot 2
-static unsigned char gobbler_bits[] = {
-00, 0x1e, 00, 0x0e, 0x01, 0xcc, 0xf9, 0x0d, 0xff, 0x0f, 0x7f, 0x0c, 0x3f, 0x0c, 0x06, 0x1c, 00, 0x0f, 0xf8, 0x07, 0x10, 00, 0x10, 00, 0x10, 00, 0x10, 00, 0x78, 00};
-#define gobbler_mask_width 16
-#define gobbler_mask_height 16
-#define gobbler_mask_x_hot 14
-#define gobbler_mask_y_hot 3
-static unsigned char gobbler_mask_bits[] = {
-00, 0x3f, 00, 0x3f, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xfe, 0x1f, 0xf8, 0x0f, 0x38, 00, 0x38, 00, 0xfc, 00, 0xfc, 00};
-#define gumby_width 16
-#define gumby_height 16
-#define gumby_x_hot 2
-#define gumby_y_hot 0
-static unsigned char gumby_bits[] = {
-0xfc, 00, 0x08, 0x01, 0x13, 0x02, 0x57, 0x05, 0x13, 0x04, 0xd3, 0x05, 0x1f, 0x3c, 0x1c, 0xfc, 0x10, 0xe4, 0x10, 0xe4, 0x90, 0xf4, 0x90, 0xe4, 0x90, 0x04, 0x88, 0x08, 0x84, 0x10, 0x7c, 0x1f};
-#define gumby_mask_width 16
-#define gumby_mask_height 16
-#define gumby_mask_x_hot 2
-#define gumby_mask_y_hot 0
-static unsigned char gumby_mask_bits[] = {
-0xfc, 00, 0xfb, 0x01, 0xf7, 0x03, 0xff, 0x07, 0xf7, 0x07, 0xf7, 0x3f, 0xff, 0x7f, 0xff, 0xff, 0xfc, 0xf7, 0xf0, 0xf7, 0xf0, 0xff, 0xf0, 0xf7, 0xf0, 0xe7, 0xf8, 0x0f, 0xfc, 0x1f, 0x7c, 0x1f};
-#define hand1_width 13
-#define hand1_height 16
-#define hand1_x_hot 12
-#define hand1_y_hot 0
-static unsigned char hand1_bits[] = {
-00, 0x18, 00, 0x1e, 0x80, 0x07, 0xc0, 0x03, 0xe0, 0x01, 0xf0, 0x03, 0xf8, 0x07, 0xfa, 0x03, 0xff, 0x07, 0xfd, 0x07, 0xf0, 0x03, 0xf0, 0x01, 0x29, 00, 0x23, 00, 0x16, 00, 0x0c, 00};
-#define hand1_mask_width 13
-#define hand1_mask_height 16
-#define hand1_mask_x_hot 12
-#define hand1_mask_y_hot 0
-static unsigned char hand1_mask_bits[] = {
-00, 0xdc, 00, 0x1f, 0xc0, 0x0f, 0xe0, 0x07, 0xf0, 0x03, 0xf8, 0x07, 0xfe, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x07, 0xff, 0x03, 0xff, 0x01, 0x7f, 00, 0x3f, 00, 0x1e, 00};
-#define hand2_width 15
-#define hand2_height 14
-#define hand2_x_hot 0
-#define hand2_y_hot 0
-static unsigned char hand2_bits[] = {
-0xfe, 0x01, 0x01, 0x02, 0x7e, 0x04, 0x08, 0x08, 0x70, 0x08, 0x08, 0x08, 0x70, 0x14, 0x08, 0x22, 0x30, 0x41, 0xc0, 0x20, 0x40, 0x12, 0x80, 0x08, 00, 0x05, 00, 0x02};
-#define hand2_mask_width 16
-#define hand2_mask_height 16
-#define hand2_mask_x_hot 0
-#define hand2_mask_y_hot 1
-static unsigned char hand2_mask_bits[] = {
-0xfe, 0x01, 0xff, 0x03, 0xff, 0x07, 0xff, 0x0f, 0xfe, 0x1f, 0xf8, 0x1f, 0xfc, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xf8, 0xff, 0xf0, 0x7f, 0xe0, 0x3f, 0xc0, 0x1f, 0x80, 0x0f, 00, 0x07, 00, 0x02};
-#define heart_width 15
-#define heart_height 14
-#define heart_x_hot 6
-#define heart_y_hot 8
-static unsigned char heart_bits[] = {
-0x7c, 0x1f, 0xc6, 0x31, 0x83, 0x60, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x03, 0x60, 0x06, 0x30, 0x0c, 0x18, 0x18, 0x0c, 0x30, 0x06, 0x60, 0x03, 0xc0, 0x01};
-#define heart_mask_width 15
-#define heart_mask_height 14
-#define heart_mask_x_hot 6
-#define heart_mask_y_hot 8
-static unsigned char heart_mask_bits[] = {
-0x7c, 0x9f, 0xfe, 0x3f, 0xc7, 0x71, 0x83, 0x60, 0x03, 0x60, 0x03, 0x60, 0x43, 0x61, 0x87, 0x70, 0x0e, 0x38, 0x1c, 0x1c, 0x38, 0x0e, 0xf0, 0x07, 0xe0, 0x03, 0xc0, 0x01};
-#define icon_width 16
-#define icon_height 16
-#define icon_x_hot 8
-#define icon_y_hot 8
-static unsigned char icon_bits[] = {
-0xff, 0xff, 0xab, 0xaa, 0x55, 0xd5, 0xab, 0xaa, 0x05, 0xd0, 0x0b, 0xa0, 0x05, 0xd0, 0x0b, 0xa0, 0x05, 0xd0, 0x0b, 0xa0, 0x05, 0xd0, 0x0b, 0xa0, 0x55, 0xd5, 0xab, 0xaa, 0x55, 0xd5, 0xff, 0xff};
-#define icon_mask_width 16
-#define icon_mask_height 16
-#define icon_mask_x_hot 8
-#define icon_mask_y_hot 8
-static unsigned char icon_mask_bits[] = {
-0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-#define iron_cross_width 14
-#define iron_cross_height 14
-#define iron_cross_x_hot 7
-#define iron_cross_y_hot 6
-static unsigned char iron_cross_bits[] = {
-0xfe, 0x1f, 0xfc, 0x0f, 0xf9, 0x27, 0xf3, 0x33, 0xe7, 0x39, 0xcf, 0x3c, 0xff, 0x3f, 0xff, 0x3f, 0xcf, 0x3c, 0xe7, 0x39, 0xf3, 0x33, 0xf9, 0x27, 0xfc, 0x0f, 0xfe, 0x1f};
-#define iron_cross_mask_width 16
-#define iron_cross_mask_height 16
-#define iron_cross_mask_x_hot 8
-#define iron_cross_mask_y_hot 7
-static unsigned char iron_cross_mask_bits[] = {
-0xfc, 0x3f, 0xfe, 0x7f, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x3f};
-#define left_ptr_width 8
-#define left_ptr_height 14
-#define left_ptr_x_hot 0
-#define left_ptr_y_hot 0
-static unsigned char left_ptr_bits[] = {
-0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, 0x1f, 0x1b, 0x31, 0x30, 0x60, 0x60};
-#define left_ptr_mask_width 10
-#define left_ptr_mask_height 16
-#define left_ptr_mask_x_hot 1
-#define left_ptr_mask_y_hot 1
-static unsigned char left_ptr_mask_bits[] = {
-0x03, 0xc0, 0x07, 00, 0x0f, 00, 0x1f, 00, 0x3f, 00, 0x7f, 00, 0xff, 00, 0xff, 0x01, 0xff, 0x03, 0xff, 0x03, 0x7f, 00, 0xf7, 00, 0xf3, 00, 0xe0, 0x01, 0xe0, 0x01, 0xc0, 00};
-#define left_side_width 14
-#define left_side_height 13
-#define left_side_x_hot 0
-#define left_side_y_hot 6
-static unsigned char left_side_bits[] = {
-0x03, 00, 0x03, 00, 0x83, 00, 0x43, 00, 0x23, 00, 0x13, 00, 0xfb, 0x3f, 0x13, 00, 0x23, 00, 0x43, 00, 0x83, 00, 0x03, 00, 0x03, 00};
-#define left_side_mask_width 16
-#define left_side_mask_height 15
-#define left_side_mask_x_hot 1
-#define left_side_mask_y_hot 7
-static unsigned char left_side_mask_bits[] = {
-0x0f, 00, 0x0f, 00, 0x0f, 0x03, 0x8f, 0x03, 0xcf, 0x01, 0xef, 00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 00, 0xcf, 0x01, 0x8f, 0x03, 0x0f, 0x03, 0x0f, 00, 0x0f, 00};
-#define left_tee_width 10
-#define left_tee_height 14
-#define left_tee_x_hot 0
-#define left_tee_y_hot 7
-static unsigned char left_tee_bits[] = {
-0x03, 0x10, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0xff, 0x03, 0xff, 0x03, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00};
-#define left_tee_mask_width 12
-#define left_tee_mask_height 16
-#define left_tee_mask_x_hot 1
-#define left_tee_mask_y_hot 8
-static unsigned char left_tee_mask_bits[] = {
-0x0f, 0xc0, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00};
-#define leftbutton_width 16
-#define leftbutton_height 16
-#define leftbutton_x_hot 8
-#define leftbutton_y_hot 8
-static unsigned char leftbutton_bits[] = {
-0x01, 0xc0, 0xfe, 0xbf, 0xfe, 0xbf, 0x22, 0xa2, 0xa2, 0xaa, 0xa2, 0xaa, 0xa2, 0xaa, 0xa2, 0xaa, 0x22, 0xa2, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0x01, 0xc0};
-#define leftbutton_mask_width 15
-#define leftbutton_mask_height 16
-#define leftbutton_mask_x_hot 8
-#define leftbutton_mask_y_hot 8
-static unsigned char leftbutton_mask_bits[] = {
-0xfe, 0xbf, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f};
-#define ll_angle_width 10
-#define ll_angle_height 10
-#define ll_angle_x_hot 0
-#define ll_angle_y_hot 9
-static unsigned char ll_angle_bits[] = {
-0x03, 0x10, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0xff, 0x03, 0xff, 0x03};
-#define ll_angle_mask_width 12
-#define ll_angle_mask_height 12
-#define ll_angle_mask_x_hot 1
-#define ll_angle_mask_y_hot 10
-static unsigned char ll_angle_mask_bits[] = {
-0x0f, 0xc0, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f};
-#define lr_angle_width 10
-#define lr_angle_height 10
-#define lr_angle_x_hot 9
-#define lr_angle_y_hot 9
-static unsigned char lr_angle_bits[] = {
-00, 0x13, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 0xff, 0x03, 0xff, 0x03};
-#define lr_angle_mask_width 12
-#define lr_angle_mask_height 12
-#define lr_angle_mask_x_hot 10
-#define lr_angle_mask_y_hot 10
-static unsigned char lr_angle_mask_bits[] = {
-00, 0xcf, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f};
-#define man_width 16
-#define man_height 16
-#define man_x_hot 14
-#define man_y_hot 5
-static unsigned char man_bits[] = {
-0xc0, 0x01, 0x78, 0x0f, 0x40, 0x01, 0x81, 00, 0xc2, 0xe1, 0x24, 0xd2, 0xb8, 0x0e, 0xa0, 0x02, 0x20, 0x02, 0x40, 0x01, 0x20, 0x02, 0x90, 0x04, 0x48, 0x09, 0x28, 0x0a, 0x1e, 0x3c, 0x1f, 0xfc};
-#define man_mask_width 16
-#define man_mask_height 16
-#define man_mask_x_hot 14
-#define man_mask_y_hot 5
-static unsigned char man_mask_bits[] = {
-0xf8, 0x07, 0xfc, 0x0f, 0xfc, 0x1f, 0xc3, 0x41, 0xe7, 0xe3, 0xfe, 0xff, 0xfc, 0xdf, 0xf8, 0x0f, 0xe0, 0x07, 0xe0, 0x03, 0xf0, 0x07, 0xf8, 0x0f, 0xfc, 0x1f, 0x7e, 0x3f, 0x3f, 0xfe, 0x3f, 0xfe};
-#define middlebutton_width 16
-#define middlebutton_height 16
-#define middlebutton_x_hot 8
-#define middlebutton_y_hot 8
-static unsigned char middlebutton_bits[] = {
-0x01, 0xc0, 0xfe, 0xbf, 0xfe, 0xbf, 0x22, 0xa2, 0x2a, 0xaa, 0x2a, 0xaa, 0x2a, 0xaa, 0x2a, 0xaa, 0x22, 0xa2, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0x01, 0xc0};
-#define middlebutton_mask_width 15
-#define middlebutton_mask_height 16
-#define middlebutton_mask_x_hot 8
-#define middlebutton_mask_y_hot 8
-static unsigned char middlebutton_mask_bits[] = {
-0xfe, 0xbf, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f};
-#define mouse_width 15
-#define mouse_height 14
-#define mouse_x_hot 4
-#define mouse_y_hot 1
-static unsigned char mouse_bits[] = {
-0xe0, 00, 0x30, 00, 0x60, 00, 0xc0, 00, 0xfe, 0x1f, 0x01, 0x20, 0xcd, 0x6c, 0xcd, 0x6c, 0xcd, 0x6c, 0x01, 0x60, 0x01, 0x60, 0x06, 0x38, 0x18, 0x06, 0xe0, 0x01};
-#define mouse_mask_width 16
-#define mouse_mask_height 16
-#define mouse_mask_x_hot 4
-#define mouse_mask_y_hot 1
-static unsigned char mouse_mask_bits[] = {
-0xf0, 0x01, 0x78, 00, 0xf0, 00, 0xe0, 00, 0xfe, 0x1f, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xef, 0xf8, 0x07, 0xf0, 0x03, 0xe0, 0x01};
-#define pencil_width 11
-#define pencil_height 16
-#define pencil_x_hot 10
-#define pencil_y_hot 15
-static unsigned char pencil_bits[] = {
-0x0e, 0x10, 0x11, 00, 0x31, 00, 0x52, 00, 0x5e, 00, 0x84, 00, 0x88, 00, 0x08, 0x01, 0x10, 0x01, 0x30, 0x02, 0x20, 0x02, 0x40, 0x04, 0x80, 0x07, 00, 0x07, 00, 0x06, 00, 0x04};
-#define pencil_mask_width 13
-#define pencil_mask_height 16
-#define pencil_mask_x_hot 11
-#define pencil_mask_y_hot 15
-static unsigned char pencil_mask_bits[] = {
-0x3f, 0xc0, 0x7f, 00, 0xff, 00, 0xfe, 00, 0xfc, 0x01, 0xfc, 0x01, 0xf8, 0x03, 0xf0, 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xe0, 0x0f, 0xc0, 0x1f, 0x80, 0x1f, 00, 0x1f, 00, 0x1e, 00, 0x1c};
-#define pirate_width 15
-#define pirate_height 16
-#define pirate_x_hot 7
-#define pirate_y_hot 12
-static unsigned char pirate_bits[] = {
-0xe0, 0x01, 0xf0, 0x03, 0xf8, 0x07, 0xcc, 0x0c, 0xcc, 0x0c, 0xf8, 0x07, 0xf0, 0x03, 0xe0, 0x01, 0xe1, 0x21, 0xe1, 0x61, 0xc2, 0x10, 0x1c, 0x0e, 0xe0, 0x01, 0xf8, 0x47, 0x0f, 0x7c, 0x01, 0x20};
-#define pirate_mask_width 16
-#define pirate_mask_height 16
-#define pirate_mask_x_hot 7
-#define pirate_mask_y_hot 12
-static unsigned char pirate_mask_bits[] = {
-0xf0, 0x03, 0xf8, 0x07, 0xfc, 0x0f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfc, 0x0f, 0xf8, 0x07, 0xf1, 0x83, 0xf1, 0xe3, 0xf3, 0xf3, 0xef, 0x39, 0x1e, 0x1e, 0xe0, 0x01, 0xfe, 0xc7, 0xff, 0xff, 0x0f, 0x7c};
-#define plus_width 10
-#define plus_height 10
-#define plus_x_hot 4
-#define plus_y_hot 5
-static unsigned char plus_bits[] = {
-0x30, 0x10, 0x30, 00, 0x30, 00, 0x30, 00, 0xff, 0x03, 0xff, 0x03, 0x30, 00, 0x30, 00, 0x30, 00, 0x30, 00};
-#define plus_mask_width 12
-#define plus_mask_height 12
-#define plus_mask_x_hot 5
-#define plus_mask_y_hot 6
-static unsigned char plus_mask_bits[] = {
-0xf0, 0xc0, 0xf0, 00, 0xf0, 00, 0xf0, 00, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xf0, 00, 0xf0, 00, 0xf0, 00, 0xf0, 00};
-#define question_arrow_width 9
-#define question_arrow_height 15
-#define question_arrow_x_hot 4
-#define question_arrow_y_hot 7
-static unsigned char question_arrow_bits[] = {
-0x7c, 0x10, 0xfe, 00, 0xc7, 0x01, 0x83, 0x01, 0x87, 0x01, 0xc6, 0x01, 0xe0, 00, 0x78, 00, 0x38, 00, 0x28, 00, 0x28, 00, 0xee, 00, 0x6c, 00, 0x38, 00, 0x10, 00};
-#define question_arrow_mask_width 11
-#define question_arrow_mask_height 16
-#define question_arrow_mask_x_hot 5
-#define question_arrow_mask_y_hot 8
-static unsigned char question_arrow_mask_bits[] = {
-0xf8, 0xc0, 0xfc, 0x01, 0xfe, 0x03, 0xff, 0x07, 0x8f, 0x07, 0x9f, 0x07, 0xde, 0x07, 0xfc, 0x03, 0xf8, 0x01, 0xf8, 00, 0xf8, 00, 0xfc, 0x01, 0xfe, 0x03, 0xfc, 0x01, 0xf8, 00, 0x70, 00};
-#define right_ptr_width 8
-#define right_ptr_height 14
-#define right_ptr_x_hot 7
-#define right_ptr_y_hot 0
-static unsigned char right_ptr_bits[] = {
-0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xf8, 0xd8, 0x8c, 0x0c, 0x06, 0x06};
-#define right_ptr_mask_width 10
-#define right_ptr_mask_height 16
-#define right_ptr_mask_x_hot 8
-#define right_ptr_mask_y_hot 1
-static unsigned char right_ptr_mask_bits[] = {
-00, 0xc3, 0x80, 0x03, 0xc0, 0x03, 0xe0, 0x03, 0xf0, 0x03, 0xf8, 0x03, 0xfc, 0x03, 0xfe, 0x03, 0xff, 0x03, 0xff, 0x03, 0xf8, 0x03, 0xbc, 0x03, 0x3c, 0x03, 0x1e, 00, 0x1e, 00, 0x0c, 00};
-#define right_side_width 14
-#define right_side_height 13
-#define right_side_x_hot 13
-#define right_side_y_hot 6
-static unsigned char right_side_bits[] = {
-00, 0x30, 00, 0x30, 0x40, 0x30, 0x80, 0x30, 00, 0x31, 00, 0x32, 0xff, 0x37, 00, 0x32, 00, 0x31, 0x80, 0x30, 0x40, 0x30, 00, 0x30, 00, 0x30};
-#define right_side_mask_width 16
-#define right_side_mask_height 15
-#define right_side_mask_x_hot 14
-#define right_side_mask_y_hot 7
-static unsigned char right_side_mask_bits[] = {
-00, 0xf0, 00, 0xf0, 0xc0, 0xf0, 0xc0, 0xf1, 0x80, 0xf3, 00, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 00, 0xf7, 0x80, 0xf3, 0xc0, 0xf1, 0xc0, 0xf0, 00, 0xf0, 00, 0xf0};
-#define right_tee_width 10
-#define right_tee_height 14
-#define right_tee_x_hot 9
-#define right_tee_y_hot 7
-static unsigned char right_tee_bits[] = {
-00, 0x13, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 0xff, 0x03, 0xff, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03};
-#define right_tee_mask_width 12
-#define right_tee_mask_height 16
-#define right_tee_mask_x_hot 10
-#define right_tee_mask_y_hot 8
-static unsigned char right_tee_mask_bits[] = {
-00, 0xcf, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f};
-#define rightbutton_width 16
-#define rightbutton_height 16
-#define rightbutton_x_hot 8
-#define rightbutton_y_hot 8
-static unsigned char rightbutton_bits[] = {
-0x01, 0xc0, 0xfe, 0xbf, 0xfe, 0xbf, 0x22, 0xa2, 0xaa, 0xa2, 0xaa, 0xa2, 0xaa, 0xa2, 0xaa, 0xa2, 0x22, 0xa2, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0x01, 0xc0};
-#define rightbutton_mask_width 15
-#define rightbutton_mask_height 16
-#define rightbutton_mask_x_hot 8
-#define rightbutton_mask_y_hot 8
-static unsigned char rightbutton_mask_bits[] = {
-0xfe, 0xbf, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f};
-#define rtl_logo_width 14
-#define rtl_logo_height 14
-#define rtl_logo_x_hot 6
-#define rtl_logo_y_hot 6
-static unsigned char rtl_logo_bits[] = {
-0xff, 0x3f, 0x01, 0x22, 0x01, 0x22, 0x01, 0x22, 0xff, 0x23, 0x11, 0x22, 0x11, 0x22, 0x11, 0x22, 0x11, 0x22, 0xf1, 0x3f, 0x11, 0x20, 0x11, 0x20, 0x11, 0x20, 0xff, 0x3f};
-#define rtl_logo_mask_width 16
-#define rtl_logo_mask_height 16
-#define rtl_logo_mask_x_hot 7
-#define rtl_logo_mask_y_hot 7
-static unsigned char rtl_logo_mask_bits[] = {
-0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xee, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x77, 0xee, 0x77, 0xee, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xff, 0x77, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-#define sailboat_width 12
-#define sailboat_height 13
-#define sailboat_x_hot 6
-#define sailboat_y_hot -1
-static unsigned char sailboat_bits[] = {
-0x80, 0x10, 0x80, 00, 0xa0, 0x01, 0xa0, 0x01, 0xb0, 0x01, 0xb0, 0x03, 0xb8, 0x03, 0xb8, 0x03, 0xbc, 0x07, 0xbc, 0x07, 0xbe, 0x07, 0xbe, 0x0f, 0x1f, 0x07};
-#define sailboat_mask_width 16
-#define sailboat_mask_height 16
-#define sailboat_mask_x_hot 8
-#define sailboat_mask_y_hot 0
-static unsigned char sailboat_mask_bits[] = {
-00, 0x03, 00, 0x07, 0x80, 0x07, 0xc0, 0x0f, 0xc0, 0x0f, 0xe0, 0x0f, 0xe0, 0x1f, 0xf0, 0x1f, 0xf0, 0x1f, 0xf8, 0x3f, 0xf8, 0x3f, 0xfc, 0x3f, 0xfc, 0xff, 0xfe, 0xff, 0xff, 0x1f, 0xfe, 0x07};
-#define sb_down_arrow_width 7
-#define sb_down_arrow_height 15
-#define sb_down_arrow_x_hot 3
-#define sb_down_arrow_y_hot 15
-static unsigned char sb_down_arrow_bits[] = {
-0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x7f, 0x3e, 0x1c, 0x08};
-#define sb_down_arrow_mask_width 9
-#define sb_down_arrow_mask_height 16
-#define sb_down_arrow_mask_x_hot 4
-#define sb_down_arrow_mask_y_hot 15
-static unsigned char sb_down_arrow_mask_bits[] = {
-0x7c, 0xc0, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0xff, 0x01, 0xff, 0x01, 0xfe, 00, 0x7c, 00, 0x38, 00, 0x10, 00};
-#define sb_h_double_arrow_width 15
-#define sb_h_double_arrow_height 7
-#define sb_h_double_arrow_x_hot 7
-#define sb_h_double_arrow_y_hot 3
-static unsigned char sb_h_double_arrow_bits[] = {
-0x08, 0x08, 0x0c, 0x18, 0xfe, 0x3f, 0x0f, 0x78, 0xfe, 0x3f, 0x0c, 0x18, 0x08, 0x08};
-#define sb_h_double_arrow_mask_width 15
-#define sb_h_double_arrow_mask_height 9
-#define sb_h_double_arrow_mask_x_hot 7
-#define sb_h_double_arrow_mask_y_hot 4
-static unsigned char sb_h_double_arrow_mask_bits[] = {
-0x18, 0x8c, 0x1c, 0x1c, 0xfe, 0x3f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f, 0x1c, 0x1c, 0x18, 0x0c};
-#define sb_left_arrow_width 15
-#define sb_left_arrow_height 7
-#define sb_left_arrow_x_hot -1
-#define sb_left_arrow_y_hot 3
-static unsigned char sb_left_arrow_bits[] = {
-0x08, 00, 0x0c, 00, 0xfe, 0x7f, 0x0f, 00, 0xfe, 0x7f, 0x0c, 00, 0x08, 00};
-#define sb_left_arrow_mask_width 16
-#define sb_left_arrow_mask_height 9
-#define sb_left_arrow_mask_x_hot 0
-#define sb_left_arrow_mask_y_hot 4
-static unsigned char sb_left_arrow_mask_bits[] = {
-0x30, 00, 0x38, 00, 0xfc, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfc, 0xff, 0x38, 00, 0x30, 00};
-#define sb_right_arrow_width 15
-#define sb_right_arrow_height 7
-#define sb_right_arrow_x_hot 15
-#define sb_right_arrow_y_hot 3
-static unsigned char sb_right_arrow_bits[] = {
-00, 0x08, 00, 0x18, 0xff, 0x3f, 00, 0x78, 0xff, 0x3f, 00, 0x18, 00, 0x08};
-#define sb_right_arrow_mask_width 16
-#define sb_right_arrow_mask_height 9
-#define sb_right_arrow_mask_x_hot 15
-#define sb_right_arrow_mask_y_hot 4
-static unsigned char sb_right_arrow_mask_bits[] = {
-00, 0x0c, 00, 0x1c, 0xff, 0x3f, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 00, 0x1c, 00, 0x0c};
-#define sb_up_arrow_width 7
-#define sb_up_arrow_height 15
-#define sb_up_arrow_x_hot 3
-#define sb_up_arrow_y_hot -1
-static unsigned char sb_up_arrow_bits[] = {
-0x08, 0x9c, 0x3e, 0x7f, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14};
-#define sb_up_arrow_mask_width 9
-#define sb_up_arrow_mask_height 16
-#define sb_up_arrow_mask_x_hot 4
-#define sb_up_arrow_mask_y_hot 0
-static unsigned char sb_up_arrow_mask_bits[] = {
-0x10, 0xc0, 0x38, 00, 0x7c, 00, 0xfe, 00, 0xff, 0x01, 0xff, 0x01, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00};
-#define sb_v_double_arrow_width 7
-#define sb_v_double_arrow_height 15
-#define sb_v_double_arrow_x_hot 3
-#define sb_v_double_arrow_y_hot 7
-static unsigned char sb_v_double_arrow_bits[] = {
-0x08, 0x9c, 0x3e, 0x7f, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x7f, 0x3e, 0x1c, 0x08};
-#define sb_v_double_arrow_mask_width 9
-#define sb_v_double_arrow_mask_height 15
-#define sb_v_double_arrow_mask_x_hot 4
-#define sb_v_double_arrow_mask_y_hot 7
-static unsigned char sb_v_double_arrow_mask_bits[] = {
-0x38, 0xc0, 0x7c, 00, 0xfe, 00, 0xff, 0x01, 0xff, 0x01, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0x7c, 00, 0xff, 0x01, 0xff, 0x01, 0xfe, 00, 0x7c, 00, 0x38, 00};
-#define shuttle_width 15
-#define shuttle_height 16
-#define shuttle_x_hot 10
-#define shuttle_y_hot 0
-static unsigned char shuttle_bits[] = {
-00, 0x84, 00, 0x0e, 00, 0x1f, 0x80, 0x7b, 0xa0, 0x7b, 0x90, 0x7b, 0x88, 0x7b, 0x88, 0x7b, 0x88, 0x7b, 0x88, 0x7b, 0x8c, 0x7b, 0x8e, 0x7b, 0xbf, 0x7b, 0x18, 0x11, 00, 0x1e, 00, 0x0c};
-#define shuttle_mask_width 16
-#define shuttle_mask_height 16
-#define shuttle_mask_x_hot 11
-#define shuttle_mask_y_hot 0
-static unsigned char shuttle_mask_bits[] = {
-00, 0x1c, 00, 0x3e, 00, 0x7f, 00, 0xff, 0x60, 0xff, 0x70, 0xff, 0x78, 0xff, 0x78, 0xff, 0x78, 0xff, 0x78, 0xff, 0x7c, 0xff, 0x7e, 0xff, 0x7f, 0xff, 0x7e, 0x7f, 0x30, 0x7e, 00, 0x3c};
-#define sizing_width 14
-#define sizing_height 14
-#define sizing_x_hot 7
-#define sizing_y_hot 7
-static unsigned char sizing_bits[] = {
-0xff, 0xc0, 0x01, 00, 0x01, 00, 0x01, 00, 0xf1, 0x03, 0x11, 0x02, 0x11, 0x22, 0x11, 0x22, 0x10, 0x22, 0xf0, 0x23, 00, 0x24, 00, 0x28, 00, 0x30, 0xc0, 0x3f};
-#define sizing_mask_width 16
-#define sizing_mask_height 16
-#define sizing_mask_x_hot 8
-#define sizing_mask_y_hot 8
-static unsigned char sizing_mask_bits[] = {
-0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0x07, 00, 0xf7, 0x0f, 0xf7, 0x0f, 0xf7, 0xef, 0x77, 0xee, 0x77, 0xee, 0xf7, 0xef, 0xf0, 0xef, 0xf0, 0xff, 00, 0xf8, 0xc0, 0xff, 0xc0, 0xff, 0xc0, 0xff};
-#define spider_width 16
-#define spider_height 16
-#define spider_x_hot 6
-#define spider_y_hot 7
-static unsigned char spider_bits[] = {
-0x04, 0x08, 0x08, 0x04, 0x08, 0x04, 0x10, 0x02, 0x10, 0x02, 0xe1, 0xe1, 0xe6, 0x19, 0xf8, 0x07, 0xf8, 0x07, 0xe6, 0x19, 0xe1, 0xe1, 0x10, 0x02, 0x10, 0x02, 0x08, 0x04, 0x08, 0x04, 0x04, 0x08};
-#define spider_mask_width 16
-#define spider_mask_height 16
-#define spider_mask_x_hot 6
-#define spider_mask_y_hot 7
-static unsigned char spider_mask_bits[] = {
-0x06, 0x18, 0x0c, 0x0c, 0x08, 0x04, 0x18, 0x06, 0xf1, 0x83, 0xf3, 0xf3, 0xf6, 0x3b, 0xfc, 0x0f, 0xfc, 0x07, 0xf6, 0x1f, 0xf3, 0xf3, 0xf1, 0x83, 0x18, 0x02, 0x18, 0x06, 0x0c, 0x0c, 0x06, 0x18};
-#define spraycan_width 11
-#define spraycan_height 16
-#define spraycan_x_hot 9
-#define spraycan_y_hot 2
-static unsigned char spraycan_bits[] = {
-00, 0xe6, 0x80, 00, 0x2c, 0x06, 0x9e, 00, 0x16, 0x06, 0x3f, 00, 0x21, 00, 0x27, 00, 0x25, 00, 0x27, 00, 0x25, 00, 0x27, 00, 0x27, 00, 0x21, 00, 0x21, 00, 0x3f, 00};
-#define spraycan_mask_width 12
-#define spraycan_mask_height 16
-#define spraycan_mask_x_hot 10
-#define spraycan_mask_y_hot 2
-static unsigned char spraycan_mask_bits[] = {
-00, 0x4c, 0x18, 0x0d, 0x7c, 0x0d, 0x7c, 0x0d, 0x7e, 0x0d, 0xff, 00, 0xff, 00, 0xff, 00, 0xff, 00, 0xff, 00, 0xff, 00, 0xff, 00, 0xff, 00, 0xff, 00, 0xff, 00, 0xff, 00};
-#define star_width 15
-#define star_height 16
-#define star_x_hot 7
-#define star_y_hot 7
-static unsigned char star_bits[] = {
-0x80, 0x80, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x9c, 0x1c, 0x03, 0x60, 0x1c, 0x1c, 0x90, 0x04, 0x48, 0x09, 0x24, 0x12, 0x14, 0x14, 0x0c, 0x18, 0x04, 0x10};
-#define star_mask_width 16
-#define star_mask_height 16
-#define star_mask_x_hot 7
-#define star_mask_y_hot 7
-static unsigned char star_mask_bits[] = {
-0x80, 00, 0xc0, 0x01, 0xc0, 0x01, 0x60, 0x03, 0x60, 0x03, 0x30, 0x06, 0x38, 0x1e, 0x9f, 0x7c, 0x03, 0xe0, 0x1f, 0x7c, 0x9c, 0x1c, 0xcc, 0x19, 0x66, 0x33, 0x36, 0x36, 0x1e, 0x3c, 0x0e, 0x38};
-#define target_width 15
-#define target_height 13
-#define target_x_hot 7
-#define target_y_hot 6
-static unsigned char target_bits[] = {
-0xc0, 0x81, 0xf0, 0x07, 0x38, 0x0e, 0x0c, 0x18, 0x06, 0x30, 0x83, 0x60, 0x43, 0x61, 0x83, 0x60, 0x06, 0x30, 0x0c, 0x18, 0x38, 0x0e, 0xf0, 0x07, 0xc0, 0x01};
-#define target_mask_width 16
-#define target_mask_height 14
-#define target_mask_x_hot 7
-#define target_mask_y_hot 7
-static unsigned char target_mask_bits[] = {
-0xe0, 0x03, 0xf0, 0x07, 0xf8, 0x0f, 0x3c, 0x1e, 0x0e, 0x38, 0x87, 0x70, 0xc3, 0xe1, 0x63, 0xe3, 0xc3, 0xe1, 0x87, 0x70, 0x0e, 0x38, 0x3c, 0x1e, 0xf8, 0x0f, 0xe0, 0x03};
-#define tcross_width 13
-#define tcross_height 13
-#define tcross_x_hot 6
-#define tcross_y_hot 6
-static unsigned char tcross_bits[] = {
-0x40, 0xe0, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0xff, 0x1f, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00};
-#define tcross_mask_width 15
-#define tcross_mask_height 15
-#define tcross_mask_x_hot 7
-#define tcross_mask_y_hot 7
-static unsigned char tcross_mask_bits[] = {
-0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01};
-#define top_left_arrow_width 14
-#define top_left_arrow_height 14
-#define top_left_arrow_x_hot 0
-#define top_left_arrow_y_hot 0
-static unsigned char top_left_arrow_bits[] = {
-0x03, 0xc0, 0x0f, 00, 0x3e, 00, 0xfe, 00, 0xfc, 0x03, 0xfc, 0x0f, 0xf8, 00, 0xf8, 00, 0x30, 0x01, 0x30, 0x02, 0x20, 0x04, 0x20, 0x08, 00, 0x10, 00, 0x20};
-#define top_left_arrow_mask_width 16
-#define top_left_arrow_mask_height 16
-#define top_left_arrow_mask_x_hot 1
-#define top_left_arrow_mask_y_hot 1
-static unsigned char top_left_arrow_mask_bits[] = {
-0x07, 00, 0x1f, 00, 0x7f, 00, 0xfe, 0x01, 0xfe, 0x07, 0xfc, 0x3f, 0xfc, 0x3f, 0xf8, 0x3f, 0xf8, 0x03, 0xf0, 0x07, 0xf0, 0x0e, 0xe0, 0x1c, 0xe0, 0x38, 0xe0, 0x70, 00, 0xe0, 00, 0xc0};
-#define top_left_corner_width 14
-#define top_left_corner_height 14
-#define top_left_corner_x_hot 0
-#define top_left_corner_y_hot 0
-static unsigned char top_left_corner_bits[] = {
-0xff, 0xff, 0xff, 0x3f, 0x03, 00, 0x03, 00, 0x03, 00, 0xe3, 0x0f, 0x63, 00, 0xa3, 00, 0x23, 0x01, 0x23, 0x02, 0x23, 0x04, 0x23, 0x08, 0x03, 00, 0x03, 00};
-#define top_left_corner_mask_width 16
-#define top_left_corner_mask_height 16
-#define top_left_corner_mask_x_hot 1
-#define top_left_corner_mask_y_hot 1
-static unsigned char top_left_corner_mask_bits[] = {
-0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 00, 0xef, 0x3f, 0xef, 0x3f, 0xef, 0x3f, 0xef, 0x03, 0xef, 0x07, 0xef, 0x0e, 0xef, 0x1c, 0xef, 0x38, 0xef, 0x30, 0x0f, 00, 0x0f, 00};
-#define top_right_corner_width 14
-#define top_right_corner_height 14
-#define top_right_corner_x_hot 13
-#define top_right_corner_y_hot 0
-static unsigned char top_right_corner_bits[] = {
-0xff, 0xff, 0xff, 0x3f, 00, 0x30, 00, 0x30, 00, 0x30, 0xfc, 0x31, 0x80, 0x31, 0x40, 0x31, 0x20, 0x31, 0x10, 0x31, 0x08, 0x31, 0x04, 0x31, 00, 0x30, 00, 0x30};
-#define top_right_corner_mask_width 16
-#define top_right_corner_mask_height 16
-#define top_right_corner_mask_x_hot 14
-#define top_right_corner_mask_y_hot 1
-static unsigned char top_right_corner_mask_bits[] = {
-0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 00, 0xf0, 0xfc, 0xf7, 0xfc, 0xf7, 0xfc, 0xf7, 0xc0, 0xf7, 0xe0, 0xf7, 0x70, 0xf7, 0x38, 0xf7, 0x1c, 0xf7, 0x0c, 0xf7, 00, 0xf0, 00, 0xf0};
-#define top_side_width 13
-#define top_side_height 14
-#define top_side_x_hot 6
-#define top_side_y_hot 0
-static unsigned char top_side_bits[] = {
-0xff, 0xff, 0xff, 0x1f, 00, 00, 0x40, 00, 0xe0, 00, 0x50, 0x01, 0x48, 0x02, 0x44, 0x04, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00};
-#define top_side_mask_width 15
-#define top_side_mask_height 16
-#define top_side_mask_x_hot 7
-#define top_side_mask_y_hot 1
-static unsigned char top_side_mask_bits[] = {
-0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xc0, 0x01, 0xe0, 0x03, 0xf0, 0x07, 0xf8, 0x0f, 0xdc, 0x1d, 0xcc, 0x19, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01};
-#define top_tee_width 14
-#define top_tee_height 10
-#define top_tee_x_hot 7
-#define top_tee_y_hot 0
-static unsigned char top_tee_bits[] = {
-0xff, 0xff, 0xff, 0x3f, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xc0, 00, 0xc0, 00};
-#define top_tee_mask_width 16
-#define top_tee_mask_height 12
-#define top_tee_mask_x_hot 8
-#define top_tee_mask_y_hot 1
-static unsigned char top_tee_mask_bits[] = {
-0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03};
-#define trek_width 7
-#define trek_height 16
-#define trek_x_hot 3
-#define trek_y_hot 0
-static unsigned char trek_bits[] = {
-0x88, 0x80, 0x1c, 0x3e, 0x7f, 0x77, 0x7f, 0x3e, 0x1c, 0x08, 0x5d, 0x6b, 0x49, 0x41, 0x41, 0x41};
-#define trek_mask_width 9
-#define trek_mask_height 16
-#define trek_mask_x_hot 4
-#define trek_mask_y_hot 0
-static unsigned char trek_mask_bits[] = {
-0x38, 0x40, 0x38, 00, 0x7c, 00, 0xfe, 00, 0xff, 0x01, 0xff, 0x01, 0xff, 0x01, 0xfe, 00, 0x7c, 00, 0xba, 00, 0xff, 0x01, 0xff, 0x01, 0xff, 0x01, 0xd7, 0x01, 0xd7, 0x01, 0xc7, 0x01};
-#define ul_angle_width 10
-#define ul_angle_height 10
-#define ul_angle_x_hot 0
-#define ul_angle_y_hot 0
-static unsigned char ul_angle_bits[] = {
-0xff, 0xe3, 0xff, 0x03, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00};
-#define ul_angle_mask_width 12
-#define ul_angle_mask_height 12
-#define ul_angle_mask_x_hot 1
-#define ul_angle_mask_y_hot 1
-static unsigned char ul_angle_mask_bits[] = {
-0xff, 0x4f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00};
-#define umbrella_width 14
-#define umbrella_height 14
-#define umbrella_x_hot 7
-#define umbrella_y_hot 2
-static unsigned char umbrella_bits[] = {
-0x88, 0xc4, 0x20, 0x0a, 0xc9, 0x32, 0xf2, 0x09, 0x4c, 0x06, 0x43, 0x18, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 00, 0x40, 0x01, 0x40, 0x01, 0x80, 00};
-#define umbrella_mask_width 16
-#define umbrella_mask_height 16
-#define umbrella_mask_x_hot 8
-#define umbrella_mask_y_hot 2
-static unsigned char umbrella_mask_bits[] = {
-0xe8, 0x76, 0xfb, 0xdf, 0xfd, 0x3f, 0xfe, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xcf, 0x79, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0x80, 0x03};
-#define ur_angle_width 10
-#define ur_angle_height 10
-#define ur_angle_x_hot 9
-#define ur_angle_y_hot 0
-static unsigned char ur_angle_bits[] = {
-0xff, 0xe3, 0xff, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03, 00, 0x03};
-#define ur_angle_mask_width 12
-#define ur_angle_mask_height 12
-#define ur_angle_mask_x_hot 10
-#define ur_angle_mask_y_hot 1
-static unsigned char ur_angle_mask_bits[] = {
-0xff, 0x4f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f, 00, 0x0f};
-#define watch_width 16
-#define watch_height 16
-#define watch_x_hot 15
-#define watch_y_hot 9
-static unsigned char watch_bits[] = {
-0xf8, 0x07, 0xf8, 0x07, 0xf8, 0x07, 0xfc, 0x0f, 0x86, 0x18, 0x83, 0x30, 0x81, 0xe0, 0xc1, 0xe1, 0xc1, 0xe1, 0x21, 0xe0, 0x13, 0x30, 0x06, 0x18, 0xfc, 0x0f, 0xf8, 0x07, 0xf8, 0x07, 0xf8, 0x07};
-#define watch_mask_width 16
-#define watch_mask_height 16
-#define watch_mask_x_hot 15
-#define watch_mask_y_hot 9
-static unsigned char watch_mask_bits[] = {
-0xfc, 0x0f, 0xfc, 0x0f, 0xfc, 0x0f, 0xfe, 0x1f, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0x1f, 0xfc, 0x0f, 0xfc, 0x0f, 0xfc, 0x0f};
-#define xterm_width 7
-#define xterm_height 14
-#define xterm_x_hot 3
-#define xterm_y_hot 7
-static unsigned char xterm_bits[] = {
-0xf7, 0x9c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x77};
-#define xterm_mask_width 9
-#define xterm_mask_height 16
-#define xterm_mask_x_hot 4
-#define xterm_mask_y_hot 8
-static unsigned char xterm_mask_bits[] = {
-0xef, 0x41, 0xff, 0x01, 0xff, 0x01, 0x7c, 00, 0x38, 00, 0x38, 00, 0x38, 00, 0x38, 00, 0x38, 00, 0x38, 00, 0x38, 00, 0x38, 00, 0x7c, 00, 0xff, 0x01, 0xff, 0x01, 0xef, 0x01};
index 27f8f6a8af276e6d194e7286297225cbf2d3d4b8..21207fbf645c16893112a34fc79865b81e20111b 100644 (file)
@@ -776,23 +776,6 @@ gdk_keyval_name G_GNUC_CONST
 #endif
 #endif
 
-#if IN_HEADER(__GDK_KEYS_H__)
-#if IN_FILE(__GDK_KEYS_DIRECTFB_C__)
-gdk_keymap_get_direction
-gdk_keymap_get_entries_for_keycode
-gdk_keymap_get_entries_for_keyval
-gdk_keymap_get_for_display
-gdk_keymap_get_caps_lock_state
-gdk_keymap_get_num_lock_state
-gdk_keymap_lookup_key
-gdk_keymap_translate_keyboard_state
-gdk_keymap_add_virtual_modifiers
-gdk_keymap_map_virtual_modifiers
-gdk_keyval_from_name
-gdk_keyval_name G_GNUC_CONST
-#endif
-#endif
-
 #if IN_HEADER(__GDK_VISUAL_H__)
 #if IN_FILE(__GDK_VISUAL_C__)
 gdk_list_visuals
index a1ab693daba418b5a1f4eb690d17ee6b6917b3aa..353765e5f79d2b7e0a3f7d5c18cc03455f5ac12e 100644 (file)
@@ -821,27 +821,23 @@ gtkunixprintinclude_HEADERS = $(gtk_unix_print_public_h_sources)
 libgtk_x11_3_0_la_SOURCES = $(gtk_c_sources)
 libgtk_win32_3_0_la_SOURCES = $(gtk_c_sources)
 libgtk_quartz_3_0_la_SOURCES = $(gtk_c_sources)
-libgtk_directfb_3_0_la_SOURCES = $(gtk_c_sources)
 
 libgtk_x11_3_0_la_LDFLAGS = $(libtool_opts)
 libgtk_win32_3_0_la_LDFLAGS = $(libtool_opts) -Wl,-luuid
 libgtk_quartz_3_0_la_LDFLAGS = $(libtool_opts)
-libgtk_directfb_3_0_la_LDFLAGS = $(libtool_opts)
 
 libgtk_x11_3_0_la_LIBADD = $(libadd)
 libgtk_win32_3_0_la_LIBADD = $(libadd) -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32
 libgtk_quartz_3_0_la_LIBADD = $(libadd)
-libgtk_directfb_3_0_la_LIBADD = $(libadd)
 
 libgtk_x11_3_0_la_DEPENDENCIES = $(deps)
 libgtk_win32_3_0_la_DEPENDENCIES = $(gtk_def) $(gtk_win32_res) $(deps)
 libgtk_quartz_3_0_la_DEPENDENCIES = $(deps)
-libgtk_directfb_3_0_la_DEPENDENCIES = $(deps)
 
 if USE_WIN32
 libgtk_target_ldflags = $(gtk_win32_res_ldflag) $(gtk_win32_symbols)
 endif
-EXTRA_LTLIBRARIES = libgtk-x11-3.0.la libgtk-win32-3.0.la libgtk-quartz-3.0.la libgtk-directfb-3.0.la
+EXTRA_LTLIBRARIES = libgtk-x11-3.0.la libgtk-win32-3.0.la libgtk-quartz-3.0.la
 
 install-exec-hook:
 if DISABLE_EXPLICIT_DEPS
index 450c921f18bca69cd1dc00db41648c95f537b90d..c872f5ab25863901264a3b29f4c4c0a6cd8e9e8b 100644 (file)
@@ -1462,8 +1462,8 @@ render_icon_name_pixbuf (GtkIconSource    *icon_source,
       names[2] = NULL;
 
       info = gtk_icon_theme_choose_icon (icon_theme,
-                                               names,
-                                               pixel_size, GTK_ICON_LOOKUP_USE_BUILTIN);
+                                         (const char **) names,
+                                         pixel_size, GTK_ICON_LOOKUP_USE_BUILTIN);
       g_free (names[0]);
       if (info)
         {
index 9aa2dd8a538d193a9a67a436566520e40e65e0c1..ea14b5218c13aa84584e9a198c406e7de04cc89a 100644 (file)
@@ -278,20 +278,6 @@ gtk_decorated_window_realize (GtkWindow   *window)
   font_desc = pango_font_description_from_string(DECORATION_TITLE_FONT);
   pango_layout_set_font_description (deco->title_layout, font_desc);
   pango_font_description_free (font_desc);
-
-#if 0
-  /* What is this code exactly doing? I remember we were using the
-     decorated windows with the DirectFB port and it did just work,
-     and there was definitely no code in linux-fb involved. */
-  gdk_fb_window_set_child_handler (window->frame,
-                                  gtk_decorated_window_inner_change,
-                                  gtk_decorated_window_inner_get_pos,
-                                  window);
-
-  /* This is a huge hack to make frames have the same shape as
-     the window they wrap */
-  gdk_window_shape_combine_mask (window->frame, GDK_FB_USE_CHILD_SHAPE, 0, 0);
-#endif
 }
 
 
index 22240f09c36bcb103f1f20714577bbcbefd9f799..2610c540a785082c53ac05efabd41c1315682f7a 100644 (file)
@@ -1,6 +1,5 @@
 # Files from the Gtk distribution which have already been
 # marked to allow runtime translation of messages
-gdk/directfb/gdkdisplay-directfb.c
 gdk/gdk.c
 gdk/gdkdisplaymanager.c
 gdk/gdkpango.c
index 0e71fd8fcd00d6c6bb7b22ab6f2b72b810a3dee8..22e05b746402f08c7603b4461e88f584007f5dd1 100644 (file)
@@ -1,6 +1,5 @@
 # Files from the Gtk distribution which have already been
 # marked to allow runtime translation of messages
-gdk/directfb/gdkdisplay-directfb.c
 gdk/gdk.c
 gdk/gdkdevice.c
 gdk/gdkdevicemanager.c